【问题标题】:Static Analysis tool recommendation for Java? [closed]Java的静态分析工具推荐? [关闭]
【发布时间】:2010-09-10 23:42:43
【问题描述】:

由于对 Java 世界有点熟悉,我在谷歌上搜索一个静态分析工具,该工具也足够智能,可以解决它发现的问题。我在 CodePro 工具上运行过,但我还是 Java 社区的新手,不了解供应商。

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

【问题讨论】:

标签: java static-analysis


【解决方案1】:

【讨论】:

  • 请您评论一下您对 lint4j 的使用情况吗?我刚刚尝试过,但它在我的整个代码库中只产生了一个警告(误报!)。我知道我的代码不是那么干净!我的代码需要 Java 6 和 lint4j proj。似乎不活跃。 lint4j 不是 FOSS,所以没有源代码。谢谢!
  • 在扫描 200 KLOC 项目期间,我收到了数百条来自 lint4j 的警告。它们中的大多数都是“很高兴拥有”,例如“使用字符文字而不是字符串文字将单个常量字符附加到流中”。 Findbugs 肯定会为您提供更重要的考虑事项。 (但在新代码上我总是同时使用它们!)
【解决方案2】:

FindBugs、PMD 和 Checkstyle 都是很好的选择,尤其是如果您将它们集成到您的构建过程中。

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

【讨论】:

    【解决方案3】:

    我推荐 FindBugs。 http://findbugs.sourceforge.net/擅长协助做code review。

    【讨论】:

    • findbugs 不再维护,被spotbugs取代
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      Sonar 是一个质量控制工具。它通过遵守编码规则约定、度量标准和高级指标来衡量 Java 应用程序的质量。

      Sonar 基于以下项目:

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

      【讨论】:

      • 我不喜欢声纳——它们开始变得非常非常昂贵。
      【解决方案6】:

      CRAP4J 不仅是一个很棒的名字,而且非常有用。其他好的都在上面,最好的(恕我直言)是 FindBugs,因为它确实可以立即在大型代码库中找到诚实的错误。

      【讨论】:

        【解决方案7】:

        你可以试试JavaDepend,它是对其他静态分析工具的补充,并提供了CQL语言来像数据库一样查询代码,

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

        【讨论】:

          【解决方案8】:

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

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

          【讨论】:

            【解决方案9】:

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

            Klocwork Coverity

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-01-05
              • 2023-03-14
              • 1970-01-01
              • 2010-09-13
              • 1970-01-01
              • 2010-10-06
              • 2010-11-05
              • 1970-01-01
              相关资源
              最近更新 更多