现在,我们在java中有很多用于静态代码分析的工具。
例如:
等
在一个应用程序中使用所有这些工具是否合适(使用maven,如果出现负面情况,我们将无法构建)。它们是可以互换的还是大致相同的?或者它会过剩? 也许这些工具有一些类别?
答案 0 :(得分:3)
Sonar的目的是聚集所有核心分析引擎(如PMD,Findbugs,Checkstyle)的结果,这就是Sonar嵌入所有这些工具以及更多工具的原因。
所以我的建议是建立一个基于Sonar的连续检测服务器,不要担心任何其他工具,因为你将使用Sonar充分利用它们。
您可以阅读以下有关持续检查的博客文章:http://www.sonarsource.org/continuous-inspection-practice-emerges-with-sonar/
答案 1 :(得分:1)
我只使用FindBugs - greate工具。真的有助于定义问题/潜在问题的地方。
但是有些时候你的代码应该以FindBugs给出redudant错误/警告的方式实现。认为可以通过一些注释来抑制它。
但是你永远不会用这些工具取代好的代码审查。
答案 2 :(得分:1)
它们不可互换,但您不需要在同一个应用程序中使用它们。
分类
答案 3 :(得分:0)
这取决于您要强制执行的规则集。使用其他工具只有在提供额外检查时才有意义。另一个问题是,您必须以不会检查相互矛盾的规则的方式配置所有工具。最后,您将获得大量冗余警告。 结论:尝试找到提供所需检查的最小工具集。
答案 4 :(得分:0)
在qulice.com(Maven项目的复合静态分析工具)中,我们使用Checkstyle,PMD,FindBugs和一些我们的自定义规则。在某个地方,他们彼此之间存在冲突,我们必须通过禁用其中一个规则中的某些规则来解决这些冲突。除此之外,这三个开源静态分析仪共存并执行最重要(和简单)的设计原则。