5

我一直在努力尝试让 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>    

一些不起作用的事情是:

  1. 自定义 checkstlye 的 configLocation 将被忽略,并且始终默认为 Sun checkstlye。
  2. 我无法运行checkstlye:check。我得到以下错误。我应该运行什么目标才能checkstyle:check运行。未能org.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check在项目 zzz-web 上执行目标 (default-cli):您有 5950 次 Checkstyle 违规
  3. 如果违规次数超过 7000,配置设置是否正确导致构建失败?
  4. Checkstyle 报告无法交叉引用报告中的 Java 代码。因此,例如,如果我尝试从包向下钻取到 Java 类,然后单击违规的行号,它不会将我带到 Java 文件。也许我没有正确配置 jxr 插件。

希望快速响应。

提前致谢。瓦玛

4

3 回答 3

7

你有定相的check目标。在这种情况下,您需要运行才能使用您的配置。运行将使用默认配置。这看起来像是上面第 1 项和第 2 项最可能的情况。maven checkstyle plugincompilemvn compilemvn checkstyle:check

即使您要运行mvn compile上述配置,仍然会由于两个配置条目failOnViolation而导致构建失败,并且failOnError它们都设置为true. mvn compile只要违规次数少于 ,删除这些条目并运行应该会通过构建7000

于 2012-06-20T06:17:40.100 回答
0

1.configLocation 自定义 checkstyle 被忽略,始终默认为 Sun checkstyle。

为此,请使用以下标签:

<properties<checkstyle.config.location>properties/checkstyle.xml</checkstyle.config.location>  </properties>

在您使用 checkstyle.this 行将位于 pom.xml 的顶部和下方标记的项目的 POM.xml 中。

<version>0.0.1-SNAPSHOT</version>
于 2014-05-20T04:42:21.340 回答
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>
于 2018-03-24T08:11:53.103 回答