Java google checkstyle Maven

2022-09-04 01:04:52

我正在尝试将我的Maven项目配置为使用以下配置使用Google Java检查样式:

google_checks.xml: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

啪.xml

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>2.17</version>
      <executions>
        <execution>
          <id>checkstyle</id>
          <phase>validate</phase>
          <goals>
            <goal>check</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <configLocation>google_checks.xml</configLocation>
        <encoding>UTF-8</encoding>
        <consoleOutput>true</consoleOutput>
        <failsOnError>true</failsOnError>
      </configuration>
    </plugin>
  </plugins>
</build>

<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jxr-plugin</artifactId>
      <version>2.5</version>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>2.17</version>
      <configuration>
        <configLocation>google_checks.xml</configLocation>
        <failOnViolation>false</failOnViolation>
        <enableFilesSummary>false</enableFilesSummary>
      </configuration>
    </plugin>
  </plugins>
</reporting>

起初似乎运行良好。但是在几次运行后,我开始收到以下错误:mvn checkstyle:check

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check 
(default-cli) on project PROJECT: Failed during checkstyle configuration: cannot initialize 
module TreeWalker - Token "METHOD_REF" was not found in Acceptable tokens list in check 
com.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheck -> [Help 1]

那是什么意思?为什么它只发生一些时间,我该如何摆脱它?


答案 1

在 check com.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheck 的可接受令牌列表中找不到令牌“METHOD_REF”

您正在尝试将较新的配置与旧版本的 Checkstyle 一起使用。

https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml 的配置依赖于 checkstyle 的快照版本。master

如果您使用的是Google配置而无需任何修改,则需要使用嵌入在checkstyle中的配置。查看 https://stackoverflow.com/a/35486365/1016482

否则,您可以集成较新版本的checkstyle以使用maven。查看 https://stackoverflow.com/a/27359107/1016482


答案 2

我正在使用maven-checkstyle-plugin的3.0.0版本(现在是最新的版本),但我仍然遇到错误。我通过在插件中添加以下依赖项来解决它。

 <dependency>
     <groupId>com.puppycrawl.tools</groupId>
     <artifactId>checkstyle</artifactId>
     <version>8.11</version>
 </dependency>


推荐