4

我有一个具有以下结构的多级 Maven 项目:

+ project
    + subproject1
        + 1_module1
        + 1_module2
        + 1_module3
        + 1_module3
    + subproject2
        + 2_module1
        + 2_module2
        + 2_module3
        + ...
    + subproject3
        + 3_module1
        + 3_module2
        + 3_module3
        + ...
    + packaging-project

打包子项目的packaging-project构建工件,并声明对、和的pom类型依赖。这(正确地)将它放在反应器构建顺序中的最后,因此这对于单线程构建非常有效。subproject1subproject2subproject3

但是,对于多线程构建(例如mvn -T4),构建是在构建所有子项目模块之前packaging-project由 maven 执行的。

我发现的一种解决方案是将每个子项目的每个模块显式列为packaging-project. 然而,这既烦人又脆弱——每次创建新模块时,都必须明确列出它,packaging-project否则就有破坏构建的风险。

另一种解决方案是packaging-project通过配置文件运行,然后mvn在主构建之后的单独调用中显式执行它。这是一个很好的解决方案,但在构建时需要一个额外的步骤。

是否有另一种方法可以packaging-project在列出的子项目的每个模块之间声明构建顺序依赖关系,而无需将每个子项目的每个子模块显式声明为依赖项?

4

1 回答 1

1

据我所知,使一个模块构建依赖于其他模块的唯一方法是使它们成为该构建的依赖项,正如您所说,这意味着拥有一个手动维护的列表。您的描述应该为您提供线索:该模块依赖于另一个模块。

于 2013-10-17T12:22:08.670 回答