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

sha*_*unc 4 java checkstyle maven

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

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

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

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

Sub*_*mal 10

如果我理解正确,你想检查项目中不是所有的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
Run Code Online (Sandbox Code Playgroud)

在所有情况下,结果都是

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

# for humans to read
target/site/checkstyle.html
Run Code Online (Sandbox Code Playgroud)

干杯