2014-09-25 147 views
1

我使用的Maven在Eclipse中创建了几个项目,基于Maven原型,并结束了与该项目结构(与多个模块父项目):提交多模块Maven项目到SVN

  • 父项目 - pom.xml中:
<name>backoffice-root</name>  
<modules> 
    <module>backoffice-web</module> 
    <module>backoffice-ejb-core</module> 
    <module>backoffice-ws</module> 
    <module>backoffice-ear</module> 
</modules> 

现在我想向他们承诺使用Subclipse一个SVN仓库。

在我的第一种方法中,我将这些项目以平面层次结构添加到SVN。我加了根的第一个项目,否则我会得到一个警告说,在模块的.svn目录将被删除:

​​

如果我尝试提交后,我得到一个错误“后台根/ backoffice-web已经在版本控制之下“。我相信会发生这种情况,因为当我将项目添加到SVN中时,每个文件夹都创建了一个.svn文件夹,但我不知道如何在不删除这些文件夹并丢失其中包含的信息的情况下解决此问题。

所以我尝试了第二种方法:将根SVN,然后将所有在根目录下的其他人(映射我的Maven项目结构SVN仓库),创建此结构在存储库:

backoffice-root  
    backoffice-web 
    backoffice-ejb-core 
    backoffice-ws 
    backoffice-ear 

但是,当我尝试提交所有这些方法,我会得到与方法#1相同的错误。

我得到的东西工作的唯一方法是只需将根添加到SVN并提交它(它提交所有模块,因为它们是根文件夹内的文件夹)。但我想在每个项目上工作并单独提交。我是否需要在平面布局中构建我的Maven项目,如this后的解释?我的原始布局如何以这种方式工作?

回答

2

我正在使用相同的布局和一切工作。我的项目骨架如下:

parent 
    -model 
    -util 
    -services 
    -web 

model,util,services和web都是父模块,放在父目录中。然后我提交了父项目(包含所有模块),最后我签出并导入(在eclipse文件 - >导入 - > Maven->现有Maven项目中)所有模块。

UPDATE1

试图描述的程序以及一些screenshoot:

第一步,我已经犯下的父母和所有模块

enter image description here

结账后,您会风以下情况:

enter image description here

其中只有父项与svn链接。现在你必须做(文件 - >导入 - > Maven->现有的Maven项目并选择所有模块。然后自动你将所有模块在SVN链接

enter image description here

UPDATE2

我父定义如下:

<modules> 
    <module>model</module> 
    <module>util</module> 
    <module>services</module> 
    <module>vaadin-webapp</module> 
</modules> 

每个模块都有替代此配置

<parent> 
    <groupId>myCompany</groupId> 
    <artifactId>myProject</artifactId> 
    <version>2.2.1-SNAPSHOT</version> 
</parent> 
+0

我已经在我的工作区中创建了Maven项目(我创建了它们中的每一个),所以我无法像导入它们那样导入它们。你如何提交一个项目?你在父项目下选择它的文件夹并提交它吗? – Baderous 2014-09-26 11:01:47

+0

@Baderous我更新了我的答案 – Skizzo 2014-09-26 12:52:00

+0

这不会修改你的父母和模块pom文件,以便它们在平面布局中相互引用? – Baderous 2014-09-26 13:10:19