java - Maven 多线程构建 : force the packaging module to run last

标签 java multithreading maven

我有一个具有以下结构的多级 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打包子项目的构建 Artifact ,并声明 pomsubproject1 的类型依赖, subproject2 , 和 subproject3 .这(正确地)将它放在 react 堆构建顺序的最后,因此它在单线程构建中工作得很好。

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

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

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

是否有另一种方法来声明 packaging-project 之间的构建顺序依赖关系以及列出的子项目的每个模块,没有明确声明每个子项目的每个子模块作为依赖项?

最佳答案

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

关于java - Maven 多线程构建 : force the packaging module to run last,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877333/

相关文章:

java - Jetty 9 服务器没有 start() 方法

java - 验证电子邮件时出现 NullPointerException

c# - Wpf 应用程序卡在主线程上,没有明显的锁

python - 在 Python 中记录特定于线程和共享的日志文件

java - IntellijIDEA 在哪里可以缓存 Maven 依赖项?

java - 使用 Maven 为 SWT 应用程序构建多平台可执行文件

java - maven 中的 IntelliJ 目录小蓝点标签

生产者消费者应用程序上的 Java 多线程查询

java - jaxb2-maven-plugin 将类路径添加到生成的源

java - 将提供的依赖项中的特定包添加到 jar 中