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

Parent POM with Multiple - Multiple Modules having dependency

我们在 CVS 中有一个相对扁平的项目结构,post 迁移到 Git 我们遇到了一个问题,因为 Git 存储库是如何检出的。 CVS 存储库从未检出,但在 Eclipse 上使用 Git 我们可以看到一个存储库文件夹,项目在该文件夹下检出。这导致我们的 Maven 脚本出现问题。

新结构是:

我在 idmlleancore 下添加了引用父 pom.xmlpom.xml 文件。 idml 下面的项目指的是中间 idmlpom.xmlleancore 指的是中间 leancorepom.xml.

  1. 如何定义两个多模块项目之间的依赖关系?
  2. 父 POM 中将包含哪些内容以支持这种结构?
  3. AdjHubCore 如何引用 idml - idmlj2eert 中的依赖项?
  4. 我们想从根父 pom.xml 文件构建所有模块和 war 文件。

您的 idmlj2eert POM 看起来像:

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

然后你的 AdjHubCore 看起来像:

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

另一种方法是在您的根 POM 中使用 <dependencyManagement>,这样就避免了必须在子 POM 中声明依赖项的版本。那么,您的根 POM 必须是这样一个子 POM 的 <parent> POM,直接或跨多个级别传递。

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

记住,聚合(多模块)和继承(parent/child 关系)是不同的东西。一个项目可以使用它们中的任何一个,也可以同时使用两者。参见 POM Reference, Inheritance v. Aggregation and Maven: The Complete Reference, 3.6.2. Multi-module vs. Inheritance