`
gao234
  • 浏览: 31936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven结合subclipse遇到的问题及解决方案

阅读更多

问题1:svn上的maven项目无法用check out as maven project检出。scm类型下拉菜单没有值,强行finish后提示"SCM provider is not available for scm :null "。

 

原因:这是由于我在安装m2eclipse插件的时候没有安装完整,缺少了maven integration for eclipse(Extras)里面的一些插件。

 

解决方案1(失败):根据m2eclipse的官方文档指示,要到Eclipse Market里面找到maven integration for eclipse(Extras)并安装,但是不知道是官方手册没更新还是怎么回事,我在Eclipse Market里面找不到这个插件。

 

解决方案2(成功):于是google到了maven integration for eclipse(Extras)的site的地址:http://m2eclipse.sonatype.org/sites/m2e-extras 通过这个site,可以在eclipse里面安装插件了。安装完毕后,项目检出正常。

 

==========================================================================

问题2:多模块maven项目提交到svn上总是提示xx模块已经under version control,导致父项目无法提交。

 

原因:这是由于先提交了子模块然后提交父模块而父模块文件夹包含了子模块导致的。

 

解决方案:先不要把子模块同步到svn,直接提交父项目,但是要注意父项目的svn:ignore属性不能控制子模块的忽略文件,所以得在提交的时候手工deselect不想进入版本管理的文件如target文件夹等,这里给一个例子:

 

整个项目:

.project
.classpath
.settings
.wtpmodules
target

bin

 

WEB-INF下:

classes

lib

 

注意:要忽略哪个文件或文件夹,就在其上一层指定svn:ignore即可

父项目提交之后,所有子模块都会自动同步到svn(如果不行,也可以手工同步),这时还要把每个子模块的svn:ignore设置成上面的值,确保不会把这些文件夹同步到svn。

 

注:svn的属性(如svn:ignore)可以设置在项目级别,也可以设置到文件夹上,因为在每个文件夹下都有.svn文件夹,里面存放相关信息。

 

参考文档:

 

【1】《使用eclipse进行多模块maven2项目开发第三部分》;这里详细说明了多模块maven项目与subclipse的结合使用

http://kr3l.wordpress.com/2008/12/23/using-eclipse-for-multi-module-maven2-projects-part-3/

 

 

【2】这篇文章图文并茂地讲解了如何在subclipse中设置svn:ignore属性

http://www.waltercedric.com/java-j2ee-mainmenu-53/361-maven-build-system/1528-subversion-and-the-importance-of-svnignore-for-maven-multi-modules.html

 

【3】《svn in action 》svn的系列文章

http://www.blogjava.net/pengpenglin/archive/2009/12/08/305180.html

 

分享到:
评论
1 楼 576017120 2012-07-12  
你好,请问你的解决方案2是怎么操作的? 我进去下载extras里面的jar包,只有一两个,没好用?

相关推荐

Global site tag (gtag.js) - Google Analytics