0

最近我正在尝试在 Jenkins 上配置 Checkstyle(使用 maven checkstyle 结果)。我的问题是 eclipse checkstyle 显示不同数量的 checkstyle 违规。我正在为 Maven 和 Eclipse 使用带有 checkstyle 规则的相同 xml 文件。

Eclipse Checkstyle Plugin 8.12.0 - 约 500 次违规 maven-checkstyle-plugin 3.0.0 - 超过 5000 次违规

对于 Eclipse 错误,我主要可以看到 NPath 复杂性和“字符串在文件中出现 X 次”警告。

对于 Maven chekstyle 2000 警告是“行有尾随空格”(在 eclipse 中没有这样的警告)。还有很多 ConstantNameCheck、RegexpSinglelineJavaCheck、VisibilityModifierCheck 警告。

我假设这两个插件的工作方式不同,但有什么办法让它显示类似的警告?

例如:在简单的项目模块中,由于 NPath 复杂性,我遇到了 4 次日食违规。对于文件 TestHandler.java,它显示“NPath Complexity is 13 allowed is 8”。在 maven 中,我遇到了 6 次违规,其中大多数是不同的。只有类似的说法是 TestHandler.java 中的相同短语“NPath Complexity is 13 allowed is 4”。

这就是检查复杂性在两种检查样式都使用的 xml 中的外观:

</module>
<module name="CyclomaticComplexity">
  <property name="max" value="6" />
</module>
<module name="NPathComplexity">
  <property name="max" value="8" />
</module>

我只使用 mvn clean install checkstyle:checkstyle 或在 jenkis 上运行 maven chestyle。我在 pom 中使用 maven 插件的最基本配置。如果需要,可以提供更多信息。

4

1 回答 1

0

我按照你的建议对主 pom 进行了更改。我还从 checkstyle.xml 文件中删除了 Javadoc 违规。目前在 Eclipse 上我得到了 ~510,在 Intelij 上 ~3100 和 Maven checkstyle ~ 3800。当我检查时,这三个中的每一个都存在违规差异。这是我用于 checkstyle 的 POM 配置片段:

    <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>6.18</version>
        </dependency>
      </dependencies>
      <executions>
      <execution>
      <id>validate</id>
      <phase>validate</phase>
      <configuration>
        <configLocation>common\code-style\checkstyle2.xml</configLocation>
        <encoding>UTF-8</encoding>
        <consoleOutput>true</consoleOutput>
        <failsOnError>true</failsOnError>
      </configuration>
        <goals>
          <goal>check</goal>
        </goals>
      </execution>
      </executions>
    </plugin> 
于 2018-10-11T11:54:24.603 回答