Checkstyle не работает - PullRequest
2 голосов
/ 01 мая 2010

Я новичок в maven и chekstyle, поэтому мне нужно задать вопрос ... Я хочу использовать checkstyle в своем проекте на основе maven, поэтому в моем pom.xml я добавил зависимость

<dependency>
   <groupId>checkstyle</groupId>
   <artifactId>checkstyle</artifactId>
   <version>2.4</version>
</dependency>

а также я добавил запись в теге плагина:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <enableRulesSummary>true</enableRulesSummary>
    <configLocation>checkstyle.xml</configLocation>
  </configuration>
</plugin>

Но когда я запускаю сборку maven с помощью команды mvn clean install, checkstyle ничего не делает. И, поскольку у меня еще нет checkstyle.xml в моей системе, разве это не должно пожаловаться мне на ошибку?

Какая еще конфигурация мне не хватает?

1 Ответ

8 голосов
/ 01 мая 2010

Я хочу использовать checkstyle в моем проекте на основе maven, поэтому в моем pom.xml я добавил зависимость (...)

Вам не нужно добавлять эту зависимость, вам просто нужно объявить плагин (плагин объявляет свои собственные зависимости).

(...) Но когда я запускаю сборку maven с командой mvn clean install, checkstyle ничего не делает.

Да, поскольку вы только объявили плагином, вы не связали цель check с фазой жизненного цикла, поэтому обычная сборка не запускает плагин checkstyle. Если вы хотите, чтобы checkstyle:check запускался как часть вашей сборки, вам нужно объявить цель check внутри выполнения (она по умолчанию привязывается к фазе verify). Примерно так:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <!-- Lock down plugin version for build reproducibility -->
  <version>2.5</version>
  <configuration>
    <consoleOutput>true</consoleOutput>
    <configLocation>checkstyle.xml</configLocation>
    ...
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Теперь вызов любой фазы, включая verify, вызовет контрольный стиль.

И поскольку в моей системе еще нет файла checkstyle.xml, разве он не должен жаловаться на ошибку?

Он будет ... при вызове (либо явно mvn checkstyle:check, либо как часть сборки, если вы измените настройки, как предложено).

...