2009-10-28 71 views
5

我在Subversion版本库中有一个多模块Maven项目,许多开发人员正在使用Eclipse + M2Eclipse进行工作。现在,如果开发人员添加了一个模块,其他人需要从命令行执行SVN更新(因为Eclipse没有看到Maven项目的通用根目录),并手动导入新模块作为Eclipse项目。在Eclipse中自动导入新的Maven模块

有没有办法自动做到这一点?

我的项目结构如下:

 
Working Copy     Eclipse Workspace 

working copy root -X-> 
+- parent   --->  +- parent 
| \- pom.xml    | \- pom.xml 
+- child1   --->  +- child1 
| \- pom.xml    | \- pom.xml 
+- child2   --->  +- child2 
    \- pom.xml     \- pom.xml 

回答

1

您可以在根目录的POM,将有父母,child1,的child2等作为模块。 SVN更新之后,如果有加入新的模块,你可以,如果你正在使用TortoiseSVN,你可以设置一个post-update client side hook运行

mvn eclipse:clean eclipse:m2eclipse 

从Eclipse的工具按钮(调试和运行按钮的右边)

,但每个开发者都必须独立设置它。

+0

我认为最初的问题是关于Eclipse插件(M2Eclipse),而不是maven-eclipse-plugin。 – 2009-10-28 12:04:38

+0

没有必要在根上添加一个pom来运行多模块构建(并且OP使用平面布局能够从Eclipse中更新eclipse的父pom.xml)。后udpate客户端挂钩是一个想法,但它不会解决整个问题。 – 2009-10-28 13:31:11

0

可能是buckminster项目可以帮助您检查FAQ。希望它有帮助

0

有没有办法自动做到这一点?

要做什么?为了避免以Eclipse项目的形式手动导入新模块? AFAIK,目前还不支持,目前还不支持,你必须手动添加它(尽管如此,应该可以通过编程的方式来完成),对Maven Eclipse插件有这样的要求 - MECLIPSE-75 - 找不到用于Eclipse的Maven集成)。

那就是说,添加模块真的发生得这么频繁吗?您的情况可能会有所不同,但根据我的经验,您将很快达到稳定点,并且添加模块将变得异常。

尽管如此,良好的团队沟通是我找到解决这个问题的最佳解决方案。当开发人员添加一个新模块时,他有责任让其他团队成员知道他引入了一个变更并描述了将修改考虑在内的必要步骤。没有人是无所不知的,没有人能够在别人心中读到,积极的沟通是良好协作的关键。

+0

我们即将对产品进行重大重构,因此项目在接下来的几个月中将会大量进行。有很多开发人员在项目上工作,我不希望每次都停止这些更改。 – 2009-11-03 11:54:42

+0

我在一个项目上遇到过这种情况,有100多位开发人员在地理上分布,如我所说,沟通是你最好的武器。也就是说,我仍然相信你会比较快地达到一个稳定点。 – 2009-11-03 12:02:33

0

你也可以使用Maven的Eclipse的插件

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <configuration> 
       <wtpversion>2.0</wtpversion> 
       <projectNameTemplate>[artifactId]-[version]</projectNameTemplate> 
      </configuration> 
     </plugin> 

刷新项目从SVN

导入之后,或者您也可以用鼠标右键单击该项目,并单击“启用依赖管理”