如何从命令行检查样式的任意java文件列表?

时间:2014-06-13 15:08:09

标签: java maven checkstyle

我希望有机会将commit / changeset中的* .java文件列表传递给预提交钩子,该钩子将检查这些java文件的代码样式。

我尝试使用maven-checkstyle-plugin,但看起来无法将任意文件列表传递给它。此外,运行mvn site构建报告,这些报告不应该像人类可读的实体一样使用,因此在python脚本中使用此报告并不是一件容易的事情(基本上是mercurial钩子)。

所以问题是:如何在命令行中检查任意* .java文件列表(就像我们用pep8检查任意python文件列表,或者用jshint / jslint检查javascript文件)?

通过样式检查我的意思不仅是打印报告到stdout而且以某种方式返回最终结果 - 文件是否已经通过了指南。

2 个答案:

答案 0 :(得分:8)

如果我理解正确,你想检查项目中的所有Java资源,只检查一些特定的文件吗?

# this checks all *.java sources
mvn checkstyle:checkstyle -Dcheckstyle.includes=**\/*.java

# this checks only sources matched by Foo*.java
mvn checkstyle:checkstyle -Dcheckstyle.includes=**\/Foo*.java

# this checks only sources matched by Foo*.java and the source Bar.java
mvn checkstyle:checkstyle -Dcheckstyle.includes=**\/Foo*.java,**\/Bar.java

在所有情况下,结果都是

# for your further automatic processing
target/checkstyle-result.xml

# for humans to read
target/site/checkstyle.html

欢呼声

答案 1 :(得分:0)

SubOptimal提出的解决方案可以与Suppression Filter结合使用:它允许使用正则表达式来排除检查文件的名称,甚至指定一些行范围。