web-dev-qa-db-fra.com

Java google checkstyle Maven

J'essaie de configurer mon projet Maven pour utiliser google Java style de vérification avec la configuration suivante:

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>

Il semble fonctionner mvn checkstyle:check bien au début. Mais après quelques exécutions je commence à obtenir l'erreur suivante:

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

Qu'est-ce que ça veut dire? Pourquoi cela n'arrive-t-il que quelques fois et comment m'en débarrasser?

12
Maglethong Spirr

Le jeton "METHOD_REF" est introuvable dans la liste des jetons acceptables dans la vérification com.puppycrawl.tools.checkstyle.checks.whitespace.SeparatorWrapCheck

Vous essayez d'utiliser une configuration plus récente avec une ancienne version de Checkstyle.

La configuration à https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml est dans master qui dépend de la version de l'instantané de checkstyle.

Si vous utilisez la configuration google sans aucune modification, vous devez utiliser celle qui est intégrée dans checkstyle. Voir https://stackoverflow.com/a/35486365/1016482

Sinon, vous pouvez intégrer une version plus récente de checkstyle pour travailler avec maven. Voir https://stackoverflow.com/a/27359107/1016482

14
rveach

J'utilisais la version 3.0.0 (qui est la plus récente en ce moment) du plugin maven-checkstyle et j'ai toujours eu l'erreur. Je l'ai résolu en ajoutant la dépendance suivante au plugin.

 <dependency>
     <groupId>com.puppycrawl.tools</groupId>
     <artifactId>checkstyle</artifactId>
     <version>8.11</version>
 </dependency>
10
Dennis Böttcher