为平面多模块maven项目配置SCM,以便eclipse可以立即检出所有内容

时间:2013-10-17 15:45:19

标签: eclipse maven

我一直在玩这个,但找不到合适的方法。这是我的设置:

/parent
  pom.xml
    <modules>
      <module>../module-1</module>
      ...
      <module>../module-n</module>
    </modules>
    <scm><connection>https://repo/trunk</connection>...</scm>
/module-1
  pom.xml
...
/module-n
  pom.xml

当我结帐父母时,我期待eclipse检查所有子模块项目。这在平面项目层次结构中是否可行?

2 个答案:

答案 0 :(得分:1)

给定结构意味着你的module-1与父级处于同一级别,这在Eclipse和Maven中都没有意义。 最好是按以下方式构建项目:

 +-- parent (pom.xml)
        +-- module-1 (pom.xml)
        +-- module-2 (pom.xml)

通过这种结构,您可以简单地检查父母并获得您需要使用的所有内容。 除此之外,它将使您的pom文件特别是模块部分更简单,可以这样做:

<modules>
  <module>module-1</module>
  ..
  <module>module-n</module>
</modules>

你的孩子只需使用这样的父母:

   <parent>
     <groupId>..</groupId>
     <artifactId>..</artifactId>
     <version>...</version>
   </parent>

答案 1 :(得分:1)

  • 如果您的子模块不是独立于其聚合项目而生活,那么最好转移到层次结构,如@ khmarbaise的回答所示。
  • 如果您的实际上是独立项目,请考虑将它们作为库处理,并将它们与聚合器项目分开;这将意味着单独发布它们并使用您的聚合器来组装它们以作为战争或zip文件发布。
  • 如果你有点卡在中间,因为你希望能够单独使用你的子模块,但你正在同时开发所有这些子模块并且你正在使用Subversion进行版本控制您可以通过Subversion的外部机制将子模块挂钩到聚合器。这需要比单个多模块存储库更多的工作,但是使用Eclipse非常方便。缺点是,据我所知,Maven Release插件无法处理此配置。