首页 > 解决方案 > 除了依赖于非线程安全插件的模块外,如何并行构建模块?

问题描述

我有一个可以安全地并行构建的项目,除了一个或两个依赖于无法同时运行的插件的子模块(例如源代码生成器)。

有没有办法告诉 Maven 并发执行构建,除了这一个或两个子模块,并且这样做不会收到关于使用非线程安全插件的警告?

标签: maven

解决方案


Maven 中的多线程并行化了模块的构建。在单个模块中,一切仍然按顺序完成。(个别插件可能具有进一步并行化的功能,尤其是 Surefire。)由于您的插件可能一次只为单个模块生成源,它们很可能是线程安全的。不是线程安全的一个例子是,如果您的插件将当前构建的模块的状态保存在static(“全局”)变量中,在这种情况下,并行执行单独的模块会破坏这些变量。


推荐阅读