具有多个的父POM - 具有依赖性的多个模块

时间:2017-06-30 19:25:19

标签: maven-3

我们在CVS中有一个相对扁平的项目结构,并且在迁移到Git后我们遇到了一个问题,因为Git存储库是如何结帐的。 CVS存储库永远不会结账,但是在Eclipse上使用Git我们会看到一个存储库文件夹,项目在该文件夹下结帐。这导致我们的Maven脚本出现问题。

新结构是:

New Folder Structure

我在pom.xmlidml下添加了引用父leancore的{​​{1}}文件。 pom.xml下面的项目引用中间idmlidmlpom.xml引用中间leancoreleancore

  1. 如何定义2个多模块项目之间的依赖关系?
  2. 什么将进入父POM以支持这种结构?
  3. pom.xml {/ 1}}如何引用AdjHubCore中的依赖关系?
  4. 我们希望从根父idml - idmlj2eert文件构建所有模块和war文件。

1 个答案:

答案 0 :(得分:1)

您的 idmlj2eert POM如下:

atRandom

然后你的 AdjHubCore 看起来像:

  ...
  <groupId>idml</groupId>
  <artifactId>idmlj2eert<artifactId>
  <version>0.0.1-SNAPSHOT<>version>
  ...

另一种方法是在根POM中使用 ... <dependency> <groupId>idml</groupId> <artifactId>idmlj2eert<artifactId> <version>0.0.1-SNAPSHOT<>version> </dependency> ... ,这样就可以避免在子POM中声明依赖项的版本。您的根POM必须是<dependencyManagement> POM,直接或可传递到多个级别,然后是这样的子POM。

所以,这与任何其他依赖都没有什么不同。 Maven Reactor根据构建开始时多模块项目内的(内部)依赖关系来处理正确的构建顺序。

请记住,聚合(多模块)和继承(父/子关系)是不同的东西。一个项目可以使用它们中的任何一个,它也可以使用它们。请参阅POM Reference, Inheritance v. AggregationMaven: The Complete Reference, 3.6.2. Multi-module vs. Inheritance