是否有任何免费的工具允许对代码进行增量静态分析(对于SVN,最好是Git)?目前我们正在使用Sonar(2.12我认为?)但问题是需要分析我们项目中所有代码的时间是40-60分钟。我们需要增加它,因为我们有几个分支在不同的子项目上工作。
这就是为什么我正在寻找一种工具,可以只分析最新提交的代码(根据我的知识,Sonar不支持),或者只修改过去X小时/天内修改过的代码
我找到了Sonar的Cutoff插件,据说可以做我想要的(只检查文件中某个日期后修改过的代码),但是:
如果只检查上次提交的代码,那将是完美的,但我没有在任何地方看到过。
另外作为一个附带问题:在每次提交(即使用哈德森声纳插件)之后运行分析是好事还是应该避免?在我的上一个团队,我们有声纳这样运行,如果我们“破坏它”我们会得到一个即时电子邮件(添加了代码的主要/关键)。这非常方便,因为我们知道谁有错(基于提交的信息)。或者我们应该更少地分析它(让我们说每周一次)?在那种情况下,我将不得不检查Sonar是否能够说出谁犯了有问题的代码。
答案 0 :(得分:3)
很少,特别是因为许多工具/规则依赖于走可能的堆栈以限制误报的数量。因此,一个组件的更改也需要重新评估调用组件,它不像从外部看起来那么简单。
要加快静态分析,请考虑投资内存磁盘或SSD来存储源和二进制文件。使用多核机器,有足够的内存并尽可能运行这些工具的x64版本。其中许多工具首先是I / O,然后是CPU限制。通过减少系统的延迟和吞吐量以及所需的交换量(通过拥有足够的内存)来进一步减少I / O,可以找到大多数改进。
您还可以在构建服务器上使用伙伴构建/验证搁置集构建,以将构建时间卸载到可在开发人员之间共享的其他计算机上。
答案 1 :(得分:0)
静态分析也有这样的工具:
很有可能你会发现它是声纳的有用替代品。
您没有提及是否使用持续集成工具。可能您需要它并运行才能使用这些工具运行检查。
答案 2 :(得分:0)
我意识到我迟到了,但还有另一种可能与你相关的工具:Teamscale
Teamscale连接到您的存储库(例如Git或SVN),并在每次提交后立即逐步分析您的代码。有了这个,您几乎可以在提交后立即获得有关新/固定代码问题的反馈。您还可以查看代码的完整历史记录,黑名单误报等等。 (完全披露:我是Teamscale开发人员)