Java的静态分析工具推荐?

Java的静态分析工具推荐?

Static Analysis tool recommendation for Java?

熟悉Java世界的我一直在搜寻一种静态分析工具,该工具也足够智能,可以解决它发现的问题。 我使用CodePro工具运行,但是再次,我是Java社区的新手,并且不了解供应商。

根据上述标准,您可以推荐哪种工具?


  • 虫子
  • PMD
  • Checkstyle
  • 棉绒4J
  • 依赖
  • 娘娘腔
  • Google Codepro

FindBugs,PMD和Checkstyle都是绝佳的选择,尤其是将它们集成到构建过程中时。

在我上一家公司,我们还使用Fortify检查潜在的安全问题。我们很幸运获得了企业许可证,所以我不知道所涉及的费用。


我建议使用FindBugs。 http://findbugs.sourceforge.net/擅长协助进行代码审查。


JetBrains的IntelliJ IDEA。他们还在.Net社区中使用ReSharper。


这是我的免费/开源静态分析工具列表(45个项目):Java代码质量工具-概述


声纳是一种质量控制工具。它通过遵守编码规则约定,度量标准和高级指标来评估Java应用程序的质量。

声纳基于以下项目:

  • JavaNCSS:质量指标

  • Checkstyle:风格咀嚼

  • PMD:对潜在错误进行代码扫描。

  • Cobertura:测试覆盖率

您也可以使用Simian进行重复检测。


您可以尝试JavaDepend,它可以补充其他静态分析工具,并提供CQL语言来查询数据库等代码,

JavaDepend还提供了许多交互式视图,以了解现有的代码库和82多种指标。


CRAP4J不仅是一个了不起的名称,而且非常有用。其他的好消息都在上面,最重要的是(IMHO)FindBugs,因为它确实确实可以在大型代码库中立即发现诚实到善良的错误。


有Java产品的几个商业供应商:

集群
覆盖范围

他们不会"解决所发现的问题"(我相信,上述任何其他问题也不会),但是这些都是具有不同优势的工具。


以上所有都是很棒的工具。 PMD可能是最常见的。

另一个工具是Enerjy。它最近免费提供,因此您可以下载并自己尝试。 Enerjy更有条理,更适合大型团队。它使自定义和共享规则变得更加容易。就个人而言,我不是超级粉丝,但也许您会比我更喜欢它。


推荐阅读