我一直在尝试让Checkstyle在Eclipse Indigo IDE中使用Maven工作一段时间。最后,我想我会就此问一些专家建议。
我正在使用Eclipse Indigo并尝试将Checkstyle配置为在Maven中运行。
下面是我的pom.xml的片段。只有checkstyle:checkstyle
正在运行并创建报告。
<profile>
<id>checkstyle-profile</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
</configuration>
<executions>
<execution>
<id>checkstyle-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>compile</phase> <!-- Default is "verify" -->
<configuration>
<violationSeverity>error</violationSeverity>
<maxAllowedViolations>7000</maxAllowedViolations>
<failOnViolation>true</failOnViolation>
<failsOnError>true</failsOnError>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
有些不起作用的事情是:
checkstlye:check
。我得到以下错误。我应该运行什么目标才能运行checkstyle:check
。
无法在项目zzz-web上执行目标org.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check
(default-cli):您有5950个Checkstyle违规行为希望快速回应。
提前致谢。 瓦玛
答案 0 :(得分:7)
您已将check
目标maven checkstyle plugin
限制为compile
阶段。在这种情况下,您需要运行mvn compile
才能使用您的配置。运行mvn checkstyle:check
将使用默认配置。这看起来像上面第1项和第2项最可能的情况。
即使您要运行mvn compile
,上述配置仍会因为两个配置条目failOnViolation
和failOnError
而导致构建失败,因为它们都设置为{{1 }}。只要违规次数少于true
,删除这些条目并运行mvn compile
就应该通过构建。
答案 1 :(得分:0)
1.自定义checkstyle的1.configLocation被忽略,并且始终默认为Sun checkstyle。
为此,请使用以下标签:
<properties<checkstyle.config.location>properties/checkstyle.xml</checkstyle.config.location> </properties>
在项目的POM.xml中,使用checkstyle.this行将位于pom.xml的顶部和底部标记处。
<version>0.0.1-SNAPSHOT</version>
答案 2 :(得分:0)
googe_checks.xml必须位于存在pom.xml的项目中。 mvn checkstyle:检查
<properties>
<checkstyle.config.location>google_checks.xml</checkstyle.config.location>
<checkstyle.violationSeverity>warning</checkstyle.violationSeverity>
<checkstyle.consoleOutput>true</checkstyle.consoleOutput>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.8</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>`
<properties>
<checkstyle.config.location>google_checks.xml</checkstyle.config.location>
<checkstyle.violationSeverity>warning</checkstyle.violationSeverity>
<checkstyle.consoleOutput>true</checkstyle.consoleOutput>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.8</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
`
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>