【问题标题】:How to build a module and its submodules using maven reactor?如何使用 maven reactor 构建模块及其子模块?
【发布时间】:2013-01-08 10:29:29
【问题描述】:

我有一个包含三个模块级别的项目。假设它有以下组织......

+-- maven-root
   +-- maven-module-1
   |   +-- maven-submodule-1-1
   |   +-- maven-submodule-1-2
   +-- maven-module-2
   |   +-- maven-submodule-2-1
   |   +-- maven-submodule-2-2
   +-- maven-module-3
       +-- maven-submodule-3-1
       +-- maven-submodule-3-2

此外,我们还有以下一组依赖项

  • maven-module-2 取决于 maven-module-1
  • maven-module-3 取决于 maven-module-3

在这个结构中,假设 maven-module-1 及其子模块的工件已经在本地存储库中可用,是否有使用 maven reactor(例如)仅构建 maven-module-2 及其子模块的解决方案?

我已经知道了,如果我这样做的话,使用 maven reactor

mvn clean install -pl :maven-module-2 --also-make-dependant

它会构建

  1. maven-module-2
  2. maven-submodule-2-1
  3. maven-submodule-2-2
  4. maven-module-3
  5. maven-submodule-3-1
  6. maven-submodule-3-2

因为maven-module-3 依赖于maven-module-2

显然,正在运行

mvn clean install -pl :maven-module-2 --also-make

只会构建maven-module-1maven-module-2

那么,如何使用该项目组织,我只能构建 maven-module-2

【问题讨论】:

  • 我认为你做不到。也许Gradle可以做到,但我没用过。

标签: maven


【解决方案1】:

使用

mvn clean install -f maven-module-2 -N

将只构建 maven-module-2 和

mvn clean install -f maven-module-2

将构建 maven-module-2 及其子代

注意 -f 用于告诉 Maven 使用另一个 POM(或模块目录,它需要其中的 pom.xml)而不是当前目录中的。因此,与 -pl 不同,maven 会考虑项目中的所有模块,然后仅构建它们的子部分,-f 仅构建此项目/模块/pom 引用的内容。待办事项

mvn clean install -f maven-module-2

一模一样

cd maven-module-2; mvn clean install

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2011-07-24
    • 2012-05-30
    • 2022-11-25
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多