有一个简单的CLI Java linter吗?

Blu*_*onX 74 java lint

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

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

mik*_*ery 68

  • Findbugs用于查找现有错误.很好!
  • PMD用于查找可能导致错误的模式(例如,未使用的变量)
  • Checkstyle强制执行编码标准和约定(例如whitespace,Javadoc)
  • Error Prone挂钩到应用程序的编译步骤

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

  • Findbugs现在是[SpotBugs](https://spotbugs.github.io/)(在[GitHub]上(https://github.com/spotbugs/spotbugs/)) (4认同)

yeg*_*niy 8

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

来自Checkstyle,FindBugs,PMD,Clirr,fb-contrib的规则.


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

甚至可以考虑使用http://docs.codehaus.org/display/SONAR/Continuous+Integration中列出的方法之一,因为看起来你可能正试图为整个团队寻找更好的工具("虽然有些子集那些功能会比我们现在拥有的更好- 没有!"

  • +1 提出问题四年后,SonarQube 似乎更加活跃、现代和完整。它曾经结合了上面提到的工具,但现在它在本地实现它们避免重叠 https://blog.sonarsource.com/already-158-checkstyle-and-pmd-rules-deprecated-by-sonarqube-java-rules/ (2认同)