Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个简单的CLI Java linter?_Java_Lint - Fatal编程技术网

是否有一个简单的CLI Java linter?

是否有一个简单的CLI Java linter?,java,lint,Java,Lint,我一直在试图找到一个能够在CLI上运行的Java linter,它独立于Eclipse,可以作为git的提交钩子调用,也可以从我们的自动构建脚本中调用。这样的事情存在吗 理想情况下,它需要检查未使用的导入和变量、是否遵循了样式指导原则、是否正确使用了异常等。尽管这些功能的某些子集比我们现在拥有的更好—什么都没有 (前面)用于查找现有的bug。非常好 用于查找可能导致错误的模式(例如未使用的变量) 执行编码标准和约定(例如空格、Javadoc) 钩住应用程序的编译步骤 所有这些工具都有一些重叠

我一直在试图找到一个能够在CLI上运行的Java linter,它独立于Eclipse,可以作为git的提交钩子调用,也可以从我们的自动构建脚本中调用。这样的事情存在吗

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

  • (前面)用于查找现有的bug。非常好
  • 用于查找可能导致错误的模式(例如未使用的变量)
  • 执行编码标准和约定(例如空格、Javadoc)
  • 钩住应用程序的编译步骤
所有这些工具都有一些重叠的规则。还有许多其他类似的工具,但它们是最受欢迎和支持的。

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

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


不确定如何将其添加到post-commit钩子中,但这可能是一个很好的起点(尤其是在使用maven时)


甚至可以考虑使用其中列出的方法,因为看起来你可能正在试图为整个团队寻找更好的工具(“尽管这些特性的一些子集会比我们现在拥有的更好——什么也没有!”

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

这些工具还处于早期阶段,但我几乎每天都在使用。可在以下位置获得:


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

您认为Findbugs和PMD做的事情不同吗?上次我研究这个问题时,我得出结论,它们非常相似,我们只需要一个(并选择PMD)。我们还运行了Checkstyle,是的,发现即使PMD和Checkstyle也有重叠。@TomAnderson-我想说他们肯定做了不同的事情,是的。它们都有价值(显然也有重叠)。是的,目标非常不同。Findbugs试图找到实际的bug,有时通过深入分析。PMD只是寻找有时会导致bug的已知模式。就个人而言,我使用Findbugs和Checkstyle,因为重叠较少。你可能想提一下PMD有两种不同类型的检查,PMD和cpd。Findbugs现在(打开)//,这不是一个软件推荐请求吗?我不知道我应该在这里问还是在meta上问,但是像这样要求推荐的问题有什么不对?当然,这个问题没有单一的、客观的答案,但是很多技术问题也是如此。这个问题可以用“我没有过梁,也不知道哪些工具是可用的、最新的和广泛使用的".这会有帮助吗?我更愿意在StackOverflow上找到一个策划、排名和日期记录的Q/a,而不是其他地方。如果不是在这里,有这种问题的人应该去哪里?这个项目的最后一次提交是在两年前。不确定这是否还在积极开发中。不,不是。但后来我开始了JavaParser的工作。那是oject不提供CLI ma,它可以构建在它之上。+1问题提出四年后,SonarQube似乎更活跃、更现代、更完整。它过去将上述工具结合在一起,但现在它以本机方式实现它们,避免了重叠。Sonar仍然没有很好的CLI工具。。。