web-dev-qa-db-ja.com

Java google checkstyle Maven

私はMavenプロジェクトを設定して、google Java checkスタイルを次の設定で使用するように設定しています:

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

pom.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]

どういう意味ですか?なぜそれが数回しか起こらないのですか、どうやって取り除くのですか?

12

トークン「METHOD_REF」は、チェックcom.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheckの許容トークンリストに見つかりませんでした

古いバージョンのCheckstyleで新しい構成を使用しようとしています。

https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml の構成は、スナップショットのバージョンに依存するmasterにありますチェックスタイルの。

変更を加えずにgoogle構成を使用している場合は、checkstyleに組み込まれている構成を使用する必要があります。参照 https://stackoverflow.com/a/35486365/1016482

それ以外の場合は、新しいバージョンのcheckstyleを統合してmavenで動作させることができます。参照 https://stackoverflow.com/a/27359107/1016482

14
rveach

私はmaven-checkstyle-pluginのバージョン3.0.0(現在最新のもの)を使用していましたが、それでもエラーが発生します。プラグインに以下の依存関係を追加することで解決しました。

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