我维护一个大型(> 500,000 LOC)Java 项目的构建过程。我刚刚在每晚构建的末尾添加了一个声纳分析步骤。但是执行需要三个多小时......这不是一个严重的问题(它在一夜之间发生),但我想知道我是否可以加快它(以便我可以在工作时间手动运行它,如果需要的话)。
我可以调整任何可能改善情况的 Sonar、Hudson、Maven 或 JDK 选项?
[INFO] ------------- Analyzing Monolith
[INFO] Selected quality profile : Sonar way, language=java
[INFO] Configure maven plugins...
[INFO] Sensor SquidSensor...
[INFO] Java AST scan...
[INFO] Java AST scan done: 103189 ms
[INFO] Java bytecode scan...
... (snip)
[INFO] Java bytecode scan done: 19159 ms
[INFO] Squid extraction...
[INFO] Package design analysis...
... (over three hour wait here)
[INFO] Package design analysis done: 12000771 ms
[INFO] Squid extraction done: 12277075 ms
[INFO] Sensor SquidSensor done: 12404793 ms
1200 万毫秒 = 200 分钟。那是很长一段时间!相比之下,声纳步骤之前的编译和测试步骤不到 10 分钟。据我所知,该过程受 CPU 限制;更大的堆没有效果。我不知道,由于缠结/重复分析,可能必须这样。当然,我知道拆分项目是最好的选择!但这需要相当多的工作;如果我可以同时调整一些配置,那就太好了。
有任何想法吗?