94

我一直在尝试找到一个能够在 CLI 上运行的 Java linter,它与 Eclipse 不同,我可以将其称为 git 的提交钩子或我们的自动构建脚本。这样的事情存在吗?

理想情况下,它需要检查未使用的导入和变量,遵循样式指南,正确使用异常等。尽管这些功能的某些子集会比我们现在拥有的更好 - 什么都没有!

4

3 回答 3

93
  • SpotBugs(早期的Findbugs)用于查找现有错误。很好!
  • PMD用于查找可能导致错误的模式(例如未使用的变量)
  • Checkstyle强制执行编码标准和约定(例如空格、Javadoc)
  • 容易出错的钩子直接进入应用程序的编译步骤
  • clang-format支持 java 并且可能已经在您的系统上可用

所有这些工具都有一些重叠的规则。还有许多其他类似的工具,但这些是最受欢迎和受支持的。

于 2013-02-04T17:31:23.320 回答
12

另外,请查看Sonar,它结合了许多其他工具并为它提供了一个很好的视图。

来自 Checkstyle、FindBugs、PMD、Clirr、fb-contrib 的规则。


不确定如何将其添加到提交后挂钩,但http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven可能是一个很好的起点(特别是如果您使用的是 maven)。

甚至可以考虑使用http://docs.codehaus.org/display/SONAR/Continuous+Integration中列出的方法之一,因为您似乎正在尝试为整个团队寻找更好的工具(“尽管这些功能会比我们现在拥有的更好——什么都没有!”

于 2014-01-14T15:19:25.270 回答
-3

这正是我正在做的事情:一个对 CLI 友好的工具,用于检查 Java 代码的质量。它还具有交互模式。您可以运行单个查询(以检查单个警告)或同时运行所有查询。

这些工具还处于早期阶段,但我几乎每天都在研究它。可在此处获得:

https://github.com/ftomassetti/effectivejava

请让我知道您对此有何看法,并随时提出问题。

于 2014-07-29T19:07:13.777 回答