针对Java的静态分析工具推荐?

对Java世界的模糊熟悉,我正在寻找一个静态分析工具,它也足够聪明,可以解决它发现的问题。 我在CodePro工具上运行,但又是新来的Java社区,不知道供应商。

你可以根据上述标准推荐什么工具?

FindBugs,PMD和Checkstyle都是很好的select,特别是如果你把它们集成到你的构build过程中。

在我最后一家公司,我们也用Fortify来检查潜在的安全问题。 我们很幸运有一个企业许可证,所以我不知道所涉及的成本。

  • FindBugs的
  • PMD
  • Checkstyle的
  • Lint4J
  • Classycle
  • JDepend
  • 娘娘腔
  • Google Codepro

来自JetBrains的IntelliJ IDEA。 他们也在.Net社区做ReSharper。

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

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

声纳基于以下项目:

  • JavaNCSS :质量度量

  • Checkstyle :Style Cheking

  • PMD :代码扫描潜在的错误。

  • Cobertura :testing覆盖率

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

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

另一个工具是Enerjy 。 它最近变得自由了,所以你可以下载它并自己尝试。 Enerjy更有组织,更适合大型团队。 这使得定制和共享规则变得更加容易。 就个人而言,我不是一个很大的粉丝,但也许你会比我更喜欢它。

CRAP4J不仅是一个很棒的名字,而且非常有用。 其他好的都是以上,最好的(恕我直言)是FindBugs,因为它确实在大代码基础上find了诚实善良的错误。

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

JavaDepend还提供了许多交互式视图来理解现有的代码库和82个度量标准。

拥有Java产品的商业供应商夫妇:

Klocwork Coverity

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