2017-11-11 197 views
0

我试图用--fail-at-end使用maven 3.3.9来构建一个多子模块项目。运行这个阶段的一个周期花费了很多时间(几个小时),并且在每个周期中我都解决了构建一些子模块和再次运行Maven构建(从另一个周期开始)的问题。 所以问题是:有没有办法迫使maven不要尝试构建在以前的周期中成功构建的包?周围的每一次 预先感谢maven包:skip成功构建的子模块

+0

你真的在运行数小时以上的版本吗?多少条代码行(1000万行?)?多少次测试? 10或5万? – khmarbaise

回答

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的增量编译器确定需要重建的内容。