【问题标题】:Eclipse Checkstyle Plugin showin different results that maven-checkstyle-pluginEclipse Checkstyle Plugin 显示与 maven-checkstyle-plugin 不同的结果
【发布时间】:2018-10-05 10:45:30
【问题描述】:

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

Eclipse Checkstyle 插件 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 插件的最基本配置。 如果需要,可以提供更多信息。

【问题讨论】:

  • 你在使用 maven pom 而不重载默认的 checkstyle 版本依赖吗?你能展示你的 POM sn-p 吗?
  • &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-checkstyle-plugin&lt;/artifactId&gt; &lt;version&gt;3.0.0&lt;/version&gt; &lt;configuration&gt; &lt;configLocation&gt;common\code-style\checkstyle.xml&lt;/configLocation&gt; &lt;/configuration&gt; ` `
  • 抱歉格式化
  • 如果您没有重载默认的 checkstyle 版本依赖项,那么您使用的是旧版本的 checkstyle(我相信是 6.18)。 maven-checkstyle-plugin 默认不使用最新的 checkstyle 版本。以github.com/sevntu-checkstyle/sevntu.checkstyle/blob/master/… 为例。

标签: java eclipse maven checkstyle maven-checkstyle-plugin


【解决方案1】:

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

    <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> 

【讨论】:

  • 6.18 是一个非常旧的版本。 8.13是目前最新的。如果您使用的是最新的 eclipse-cs,它使用的是 8.12 。
猜你喜欢
  • 2019-12-02
  • 2013-11-10
  • 2011-08-23
  • 2015-02-05
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
相关资源
最近更新 更多