Maven checkstyle не работает как часть сборки

Я полностью потерян, почему бы и нет. Структура выглядит так:

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

<build>
   <pluginManagement>
         <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-checkstyle-plugin</artifactId>
              <version>2.13</version>

              <configuration>
                <configLocation>checkstyle.xml</configLocation>
                <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
                <maxAllowedViolations>2500</maxAllowedViolations>
                <consoleOutput>true</consoleOutput>
                <failsOnError>true</failsOnError>
                <failOnViolation>true</failOnViolation>
              </configuration>

              <executions>
                <execution>
                  <id>checkstyle</id>
                  <goals>
                    <goal>check</goal>
                  </goals>
                  <configuration>

                    <encoding>UTF-8</encoding>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <failOnViolation>true</failOnViolation>
                  </configuration>
                </execution>
              </executions>
            </plugin>
.....
</plugins>
</pluginManagement>
</build>

0 ответов

Вы можете добавить плагин в pom следующим образом, и он будет работать как часть вашей сборки (mvn clean install):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>3.0.0</version>
  <configuration>
    <configLocation>checkstyle.xml</configLocation>
    <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
    <consoleOutput>true</consoleOutput>
    <maxAllowedViolations>2500</maxAllowedViolations>
    <failsOnError>true</failsOnError>
    <failOnViolation>true</failOnViolation>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Смотрите также: Checkstyle не работает

И на самом деле, для большинства из этих параметров конфигурации (все, кроме failsOnError, у которого нет "пользовательского свойства"), вы можете альтернативно поместить их в ваш pom.xml в качестве свойств:

  <properties>
    ...
    <checkstyle.config.location>checkstyle.xml</checkstyle.config.location>
    <checkstyle.suppressions.location>checkstyle-suppressions.xml</checkstyle.suppressions.location>
    <checkstyle.consoleOutput>true</checkstyle.consoleOutput>
    <checkstyle.maxAllowedViolations>2500</checkstyle.maxAllowedViolations>
    <checkstyle.failOnViolation>true</checkstyle.failOnViolation>
  </properties>

Таким образом, вы можете удалить их из раздела конфигурации плагинов для удобства, хотя любой подход работает. См. https://maven.apache.org/plugins/maven-checkstyle-plugin/check-mojo.html для значений "Свойства пользователя" и т. Д.

Другие вопросы по тегам