Maven checkstyle没有作为构建的一部分运行

时间:2014-11-05 20:02:06

标签: maven checkstyle

我完全迷失了为什么不。结构是这样的:

使用mvn checkstyle:check创建报告(我在报告部分中有相同的设置)但是build会像对待它一样对待插件。如果我更改了checkstyle版本,它就不会下载它等等。基本上它会将此配置视为不可见。

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

1 个答案:

答案 0 :(得分:1)

您可以按照以下步骤将插件添加到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 not working

实际上,对于大多数配置参数(除 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