Jenkins中Maven job的构建时间突然增加

Jenkins中Maven job的构建时间突然增加,maven,jenkins,build-time,Maven,Jenkins,Build Time,我在Jenkins中有一个Maven构建作业设置,具有以下显著配置: - It is a multi-module job with 75 modules - It is built incrementally (build only changed modules) - Automatic artifact archiving is disabled 构建时间约为20分钟。然而,从一段时间开始,构建时间急剧增加到1小时15分钟。作业仍在增量生成,当前生成数约为1450。我只保存了3个旧版本。

我在Jenkins中有一个Maven构建作业设置,具有以下显著配置:

- It is a multi-module job with 75 modules
- It is built incrementally (build only changed modules)
- Automatic artifact archiving is disabled
构建时间约为20分钟。然而,从一段时间开始,构建时间急剧增加到1小时15分钟。作业仍在增量生成,当前生成数约为1450。我只保存了3个旧版本。我的问题是为什么构建时间会有如此高的增量

以下是我尝试和观察到的事情:

默认情况下,Maven作业会创建指纹。对于大量构建(目前为1450),在构建期间可能会访问大量指纹数据,因此会增加总体构建时间。然而,我清理了所有现有的指纹,并尝试重建该项目。这对构建时间没有影响(仍然需要1小时才能完成)

我试着做一个完整的构建,而不是一个增量构建,以了解是否在确定要构建的模块方面花费了大量时间。这也无济于事,完整构建在1小时20分钟内完成

我还尝试在专用的从机上构建作业,以防问题是由于资源可用性造成的。这对构建时间没有影响

唯一有效的方法是重新命名作业本身。重命名后,构建将在大约20分钟内再次完成。但我不确定这是否是一个理想的解决方案。我也不明白这种重命名作业的方法背后的逻辑

有人能建议一下Maven build内部发生了什么,以便在大量构建之后增加构建时间吗?我正在使用Jenkins v1.560和maven项目插件v2.0。升级Maven插件或Jenkins现在不是我的选择

更新1


根据对构建输出的分析,主要构建时间花费在“解析POM”(约30分钟)和“元数据收集”步骤(约20分钟)上。有人知道在这两个步骤中到底发生了什么吗?

你有没有看过时间的去向?打开Jenkins日志中的时间戳,查看是否有大的延迟。@NickB“解析POM”和“元数据收集”占用了大部分时间。然而,我不知道在这些步骤中到底发生了什么,所以无法确定这些延迟的原因。奇怪!您使用的是什么SCM?在我看来,如果增量构建和完整构建花费的时间相似(并且可能构成“元数据集合”的一部分),那么这可能是一个问题。还有,你试过在本地运行这个Maven构建吗?@NickB我正在使用Git和Maven-3.2.1。我启用了时间戳,发现解析POM需要大约30分钟,元数据收集需要20分钟。在Jenkins中,我在本地磁盘上运行构建,即从节点中的/var/tmp/location。当通过命令行在本地构建这个项目时,整个构建大约在70分钟内完成。你能说一下你有多少代码(例如SonarQube测量的代码行)有多少测试(单元和集成测试)你如何在构建中启动maven?您是否在使用存储库管理器?您是否在Jenkins中使用每个构建的存储库?除此之外,你付出的时间太长了。。。。