将多模块maven项目提交给SVN

时间:2014-09-25 14:18:02

标签: eclipse maven svn

我使用Maven在Eclipse中创建了几个基于Maven原型的项目,最后得到了这个项目结构(一个包含多个模块的父项目):

  • 父项目 - 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中的平面层次结构中。我添加的第一个项目是root,否则我会收到警告说模块中的.svn文件夹将被删除:

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

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

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

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

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

我让事情发挥作用的唯一方法就是将root添加到SVN并提交它(它提交所有模块,因为它们是root中的文件夹)。但我想在每个项目上工作并单独提交。我是否需要在this帖子中解释的平面布局中构建我的Maven项目?如何使用我的原始布局以这种方式工作?

1 个答案:

答案 0 :(得分:2)

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

parent
  -model
  -util
  -services
  -web

model,util,services和web都是父模块,并放在父目录中。然后我提交了父项目(包含所有模块),最后我检查并导入(在eclipse File-&gt; Import-&gt; Maven-&gt;现有Maven项目中)所有模块。

<强> UPDATE1

尝试在某些屏幕截图中描述该过程:

Step1我已经提交了父模块和所有模块

enter image description here

结帐后,您将遇到以下情况:

enter image description here

其中只有父级与svn链接。现在你必须做(File-&gt; Import-&gt; Maven-&gt;现有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>