我正在尝试使用maven 3.3.9和--fail-at-end构建一个多子模块项目。运行这个阶段的一个周期花费了很多时间(几个小时),并且在每个周期中我解决了构建一些子模块和再次运行maven构建(开始另一个周期)的问题。 所以问题是:有没有办法迫使maven不要尝试构建在之前的周期中成功构建的包? 提前致谢
答案 0 :(得分:1)
听起来你有一个多模块项目,你正试图通过迭代过程得到一个完整的,成功的构建......
build -> fail -> fix the failure -> rebuild
...并且每次围绕该循环,您都希望恢复发生故障的模块,而不是每次都构建整个项目。
此用例的标准方法是使用-rf
:
-rf, --resume-from
Resume reactor from specified project
例如,如果名为moduleD
的模块失败,则按如下方式重新运行构建:
mvn -rf :moduleD install
更多详情in the docs。
在重新运行构建时,您也可以选择不包含clean
阶段,从而允许Maven的增量编译器计算出需要重建的内容。