Maven 检查样式插件:将警告打印到控制台



当我运行检查目标时,我似乎无法弄清楚如何让 maven-checkstyle-plugin 向控制台打印警告。

如果我配置为:

<module name="Checker">
    <module name="TreeWalker">
        <module name="NPathComplexity">
            <property name="max" value="5" />
            <property name="severity" value="warning" />
        </module>
    </module>
</module>

。我在控制台中看不到任何内容,并且检查没有失败。如果我将严重性更改为错误,则检查将失败。

有什么想法吗?我错过了什么吗?

插件配置如下

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    <logViolationsToConsole>true</logViolationsToConsole>
                    <configLocation>
                        rules.xml</configLocation>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

我也有类似的问题。 这种配置对我有用。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.9.1</version>
    <configuration>
        <consoleOutput>true</consoleOutput>
    </configuration>
    <executions>
        <execution>
           <id>checkstyle</id>
           <goals>
               <goal>checkstyle</goal>
           </goals>
           <phase>prepare-package</phase>
        </execution>
    </executions>
</plugin>

<violationSeverity>warning</violationSeverity>添加到 pom 中的<configuration>.xml对我有用:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <configuration>
                <logViolationsToConsole>true</logViolationsToConsole>
                <configLocation>checkstyle.xml</configLocation>
                <violationSeverity>warning</violationSeverity>
            </configuration>
            <executions>
            ...
            </executions>
            ...
        </plugin>

另外,我的检查样式中也有这个.xml:

       <module name="Checker">
          <module name="SeverityMatchFilter">
              <!-- report all violations except ignore -->
              <property name="severity" value="ignore"/>
              <property name="acceptOnMatch" value="false"/>
          </module>
          ...
      </module>

我假设您必须显式添加检查目标才能将信息打印到控制台,如文档中所述。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.9.1</version>
    <executions>
      <execute>
        <id>check</id>
        <goals><goal>check</goal></goals>
        <phase>prepare-package</phase>
      <execute>
    </executions>
  </plugin>

根据您调用 mvn 的方式,您需要更改将完成检查的阶段。maven-checkstyle-plugin 的默认绑定是验证阶段。要么在执行块中给出一个明确的阶段,要么你只做 mvn 清理验证,你可以省略阶段条目。

最新更新