【发布时间】:2016-08-06 19:05:39
【问题描述】:
我正在寻找一种在 Eclipse 中加快重建速度的方法。
一些背景:我们有一个比较大的项目,总共大约 177 个 pom 文件,大约 150 个 maven 模块。没有测试的完整构建大约需要 15-20 分钟,测试 - 接近 6 小时。当您调试或反射时,这是一个 PITA。我们有几个活跃的分支(并且需要经常在它们之间切换,有时每天几次)。本地分支总是 X.X-SNAPSHOT 版本(这似乎很重要)。
大多数时候,您并没有对所有项目进行更改,您只需要对少数项目进行更改。所以还有很大的优化空间。
我想我的理想方案是选择要从包存储库中提取的某些项目,除非我明确说明,否则永远不要在本地构建。这可以实现吗?
我尝试过的事情:
仅导入模块的子集。部分有帮助,但 maven 仍然检查所有依赖项,这不可避免地导致项目中一半的模块被检查,即使它们都没有改变。部分成功。
仅从源代码管理中检出我将使用的项目。构建速度非常快,因为 maven 从企业 repo 或 ~/.m2 缓存中提取二进制依赖项,而不是构建它们。使用 SVN 和 Git 变得相当困难,因为您没有检查所有源代码。部分成功。
禁用自动构建并使用 -am -pl 选项从命令行构建所有内容,指定已更新的项目。当您需要构建较大的更改(即在合并之后)时会有所帮助,但是 (a) 这很麻烦,并且 (b) 当您再次打开自动构建时,您会被征税。
建议我们将庞大的存储库分解为单独的服务和基础库,并转移到不同的源代码控制存储库中。从管理层得到“是的”。可能不会发生。
还有什么可以做的吗?
【问题讨论】:
标签: eclipse maven build module