如何在svn中用一些模块配置多模块maven项目的父模块

时间:2014-04-16 03:16:08

标签: maven svn module

我是maven的初学者。简单地说,我在Web项目中有三个模块:父模块,Web模块和服务模块。

parent-module
  +----web-module
  |         +----pom.xml
  +----service-module
  |         +----pom.xml
  +----pom.xml

通常,parent-module.pom.xml可能是这样的:

<modules>
   <module>../web-module</module> 
   <module>../service-module</module>
</modules>

如果服务模块在svn中,我怎么能配置parent-module.pom.xml,我还没有检查出来。

1 个答案:

答案 0 :(得分:0)

你的结构错了。更改文件夹结构可以让您的生活更轻松。

+-- parent-module (pom.xml)
        +--- web-module (pom.xml)
        +--- service-module (pom.xml)

最好将上述结构放入SVN进入trunk。这意味着您可以签出项目的主干,并在工作副本中获得上述结构。 结果是:

svn checkout URL/project/trunk workingcopy

将在workgincopy文件夹中创建以下内容:

+-- (pom.xml)
        +--- web-module (pom.xml)
        +--- service-module (pom.xml)

基于以上所述,您的父模块将如下所示:

<project>
  <groupId>whatEver</groupId>
  <artifactId>project-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  ...
  <modules>
     <module>web-module</module> 
     <module>service-module</module>
  </modules>
</project>

现在您的孩子(网络模块)看起来像这样:

<project>
  <parent>
    <groupId>whatEver</groupId>
    <artifactId>project-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>web-module</artifactId>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>whatEver</groupId>
      <artifactId>service-module</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
...
</project>

最后,您的服务模块如下所示:

<project>
  <parent>
    <groupId>whatEver</groupId>
    <artifactId>project-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>service-module</artifactId>

...
</project>

因此,在Maven中,您可以更改为项目的根目录(工作副本),并通过以下方式构建整个项目:

mvn clean package