java – 如何加快Sonar的包装设计分析?

我维护一个大型(> 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限制;更大的堆没有效果.也许它必须是这种方式,因为纠结/重复分析,我不知道.当然,我知道拆分项目是最好的选择!但这需要相当多的工作;如果我可以在此期间调整一些配置,那就太好了.

有任何想法吗?

解决方法:

我走了你的鞋子:在一个200万的loc项目(原本应该在几年前拆分成子项目),我从未看到包装设计分析在计算的4天内完成…

截至SONAR-2164 (Add an option to skip the quadratic “Package design analysis” phase),我已经提交了一个补丁,允许用户在他们的maven项目文件中设置为true,以便跳过包设计分析.
此修补程序正在等待批准,目前计划包含在v2.7中.

上一篇:linux – SONAR – 使用Cobertura测量代码覆盖率


下一篇:从SonarQube 4.1.1分析中排除Java测试文件