问题 Intellij IDEA内置检测代码与checkstyle,PMD和findbugs


最近我正在寻找最好的代码检查工具集。我的IDE是Intellij 15.0,我知道那里有很好的检查功能,但是当我查看互联网时,我没有找到Intellij内置检查代码和那三个之间的良好比较。 尝试过所有人的人可以提供一些最佳实践吗? Intellij是否涵盖所有这些?

我知道findbugs以二进制级别运行但仍然让它保持在比较中。


4758
2017-12-06 16:05


起源



答案:


Checkstyle的 项目本身,我们使用所有这些工具: Checkstyle的PMDFindBugs的 和 IntelliJ IDEA检查

以下是我的观察:

  • 没有替代品 Checkstyle的 在格式化,空格,大括号放置,Javadoc和一般代码风格方面。 IntelliJ在命名和一些不良做法方面存在一些重叠,但就是这样。
  • PMD 规则与IntelliJ的规则非常相似。这两种工具主要用于检测典型错误或不良做法。你仍然会发现一些独特的有用的PMD规则,只是一些随机的例子: BigIntegerInstantiationCommentDefaultAccessModifierSingletonClassReturningNewInstance
  • 我永远不会辞职 FindBugs的 赞成其他一些工具。 FindBugs专注于在低代码误报率的代码中找到真正的错误。通常,它几乎不需要任何配置 - 只需启用所有规则并确保睡眠安全。当然与IntelliJ有一些重叠,但检测到的bug越多越好。

IntelliJ IDEA 检查是一个很好的工具,因为它们包含许多独特而可靠的规则。而且它不仅仅是Java - 您可以开箱即用地检测XML,属性,SQL,Spring,HTML,CSS等问题。它们需要大量配置并选择正确的规则集。启用所有规则将在每个较大的项目上报告数十万次违规。并且很难将这些检查嵌入到Maven或Gradle构建中,以便项目可以自我验证。

我的建议是利用 所有 这些工具中的每一个都包含至少十几个(有时十几个)有用的检查,这些检查在其他任何地方都无法获得。


13
2017-12-06 22:25



谢谢Michal的回答。您是否将IntelliJ插件用于所有这些工具?如果我们插入像将在CI中运行的SonarQube图片工具,你仍然在IDE中使用它们吗? - Idan
我只使用CheckStyle-IDEA,因为它可以在提交之前快速实时分析并快速验证所有文件。 Checkstyle问题是最常见的问题,因此它非常有用。对于PMD和FindBugs,我调用 mvn pmd:check findbugs:check 或同等的Gradle。这些工具中的违规行为不常见但更严重,因此如果我忘记某些事情,CI无论如何都会失败。 - Michal Kordas


答案:


Checkstyle的 项目本身,我们使用所有这些工具: Checkstyle的PMDFindBugs的 和 IntelliJ IDEA检查

以下是我的观察:

  • 没有替代品 Checkstyle的 在格式化,空格,大括号放置,Javadoc和一般代码风格方面。 IntelliJ在命名和一些不良做法方面存在一些重叠,但就是这样。
  • PMD 规则与IntelliJ的规则非常相似。这两种工具主要用于检测典型错误或不良做法。你仍然会发现一些独特的有用的PMD规则,只是一些随机的例子: BigIntegerInstantiationCommentDefaultAccessModifierSingletonClassReturningNewInstance
  • 我永远不会辞职 FindBugs的 赞成其他一些工具。 FindBugs专注于在低代码误报率的代码中找到真正的错误。通常,它几乎不需要任何配置 - 只需启用所有规则并确保睡眠安全。当然与IntelliJ有一些重叠,但检测到的bug越多越好。

IntelliJ IDEA 检查是一个很好的工具,因为它们包含许多独特而可靠的规则。而且它不仅仅是Java - 您可以开箱即用地检测XML,属性,SQL,Spring,HTML,CSS等问题。它们需要大量配置并选择正确的规则集。启用所有规则将在每个较大的项目上报告数十万次违规。并且很难将这些检查嵌入到Maven或Gradle构建中,以便项目可以自我验证。

我的建议是利用 所有 这些工具中的每一个都包含至少十几个(有时十几个)有用的检查,这些检查在其他任何地方都无法获得。


13
2017-12-06 22:25



谢谢Michal的回答。您是否将IntelliJ插件用于所有这些工具?如果我们插入像将在CI中运行的SonarQube图片工具,你仍然在IDE中使用它们吗? - Idan
我只使用CheckStyle-IDEA,因为它可以在提交之前快速实时分析并快速验证所有文件。 Checkstyle问题是最常见的问题,因此它非常有用。对于PMD和FindBugs,我调用 mvn pmd:check findbugs:check 或同等的Gradle。这些工具中的违规行为不常见但更严重,因此如果我忘记某些事情,CI无论如何都会失败。 - Michal Kordas