maven - 除了依赖于非线程安全插件的模块外,如何并行构建模块?
问题描述
我有一个可以安全地并行构建的项目,除了一个或两个依赖于无法同时运行的插件的子模块(例如源代码生成器)。
有没有办法告诉 Maven 并发执行构建,除了这一个或两个子模块,并且这样做不会收到关于使用非线程安全插件的警告?
解决方案
Maven 中的多线程并行化了模块的构建。在单个模块中,一切仍然按顺序完成。(个别插件可能具有进一步并行化的功能,尤其是 Surefire。)由于您的插件可能一次只为单个模块生成源,它们很可能是线程安全的。不是线程安全的一个例子是,如果您的插件将当前构建的模块的状态保存在static
(“全局”)变量中,在这种情况下,并行执行单独的模块会破坏这些变量。
推荐阅读
- swiftui - SwiftUI 每次都会重新编译 pod 和所有内容
- asp.net-core - ExceptionFilterAttribute 可能不会在 ApplicationInsights 中记录异常
- python - CSS 属性 Selenium 的值对所有图像返回 None
- apache-kafka - Kafka Connect RetriableCommitFailedException - 采取什么行动
- express - svelte + express(没有工兵) - 如何发送道具/与服务器通信?
- ios - 我在 Swift 中的通用协议有什么问题?
- python - 优化 Python 中的嵌套 for 循环
- wpf - ControlTemplate 元素在其绑定的控件模板大小调整时也会调整大小 - WPF XAML
- elasticsearch - Fluentd 错误:“缓冲区数据过多”
- bootstrap-4 - 在 bootstrap4 中创建电池符号