Jon*_*her 3 java checkstyle maven
试图找出我是在做错什么,还是这是Maven Checkstyle插件中的错误。如果我mvn checkstyle:check明白了:
jonathanfisher@odin ~/dev/snapjms/snapjms $ mvn checkstyle:check
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building snapjms 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:check (default-cli) @ snapjms ---
[INFO] There is 1 error reported by Checkstyle 6.11.2 with /Users/jonathanfisher/dev/snapjms/snapjms/target/checkstyle-rules.xml ruleset.
[ERROR] src/main/java/org/xxx/xxx/snapjms/jms/factories/UnsupportedPayloadException.java:[8] (sizes) LineLength: Line is longer than 135 characters (found 144).
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.411 s
[INFO] Finished at: 2016-06-16T15:33:58-05:00
[INFO] Final Memory: 17M/371M
Run Code Online (Sandbox Code Playgroud)
如果我确实mvn checkstyle:checkstyle注意到它如何翻转到sun_checks.xml:
jonathanfisher@odin ~/dev/snapjms/snapjms $ mvn checkstyle:checkstyle
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building snapjms 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:checkstyle (default-cli) @ snapjms ---
[INFO] There are 451 errors reported by Checkstyle 6.11.2 with sun_checks.xml ruleset.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.904 s
[INFO] Finished at: 2016-06-16T15:35:46-05:00
[INFO] Final Memory: 24M/361M
Run Code Online (Sandbox Code Playgroud)
这是我的内联配置:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<inherited>true</inherited>
<configuration>
<logViolationsToConsole>true</logViolationsToConsole>
<checkstyleRules>
<module name="Checker">
<module name="SuppressionCommentFilter" />
<module name="LineLength">
<property
name="max"
value="135" />
<property
name="ignorePattern"
value="@version|@see" />
</module>
</checkstyleRules>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</reporting>
Run Code Online (Sandbox Code Playgroud)
该报告mvn:site还使用sun_checks.xml我在做什么错?
该checkstyle目标读取从配置的规则集文件configLocation。默认情况下,这是sun_checks.xml包含在插件中的:
指定要使用的XML配置的位置。[...]
Maven Checkstyle插件中包含2个预定义规则集:
sun_checks.xml:太阳检查。google_checks.xml:Google Checks。默认:
sun_checks.xml
与check目标相反,它没有checkstyleRules可使用内联检查器配置的参数,因此,它不需要为规则集指定位置。
我在maven-checkstyle-pluginJIRA上找不到与此相关的增强请求,因此也许可以提出请求:内联配置是在MCHECKSTYLE-211中引入的,显然只涵盖了check目标。
这说明了您的输出:
mvn checkstyle:check的规则是<checkstyleRules>参数中定义的规则;mvn checkstyle:checkstyle,未设置规则的位置,因此默认为sun_checks.xml。因此,要将规则用于check目标(mvn site例如,当用作报告目标时运行),您将需要具有一个外部文件,并使用以下文件进行引用:
<configLocation>checkstyle.xml</configLocation>
Run Code Online (Sandbox Code Playgroud)