我正在寻找一种方法来加速日食中的重建。
一些背景:我们有一个相对较大的项目,共有约177个pom文件,大约150个maven模块。没有测试的完整版本需要大约15-20分钟,测试 - 接近6小时。在调试或转换时,哪个是PITA。我们有几个活跃的分支(需要经常在它们之间切换,有时每天几次)。本地分支总是X.X-SNAPSHOT版本(这似乎很重要)。
大多数情况下,您没有对所有项目进行更改,只有少数人在处理。所以有很多优化空间。
我想我的理想情况是选择从包存储库中提取的某些项目,除非我明确说明,否则永远不会在本地构建。这可以实现吗?
我尝试的事情:
仅导入模块的子集。部分有帮助,但maven仍然检查所有依赖项,这不可避免地导致项目中的一半模块被检查,即使它们都没有改变。部分成功。
仅检查我将要使用的源代码管理项目。构建速度非常快,因为maven从公司repo或〜/ .m2缓存中提取二进制依赖项而不是构建它们。使用SVN和Git变得相当困难,因为您没有检出所有源。部分成功。
禁用自动构建并使用-am -pl选项从命令行构建所有内容,指定已更新的项目。帮助您何时需要构建大型更改(即合并后),但(a)这很麻烦;(b)当您再次打开自动构建时,您需要纳税。
建议我们将这个庞大的repo分解为单个服务和基础库,并转移到不同的源代码控制库中。得到了"是的,#34;来自管理层。可能不会发生。
还有什么可以做的吗?
答案 0 :(得分:0)
在坚持使用这4个选项一段时间后,我发现转移到Idea并摆弄Maven缓存设置(字面意思是将IDE缓存指向〜/ .m2)使得痛苦更容易忍受。解决方案仍远未令人满意。我希望这会有所帮助。