【问题标题】:Maven checkstyle plugin: Print warnings to consoleMaven checkstyle 插件:向控制台打印警告
【发布时间】:2012-05-07 19:46:05
【问题描述】:

当我运行检查目标时,我似乎无法弄清楚如何让 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>

【问题讨论】:

  • 你能用配置显示你的 pom sn-p 吗?
  • 你试过运行 mvn clean verify 吗?为什么要配置阶段编译?只需尝试不带阶段的默认设置,然后尝试 mvn clean verify。
  • @khmarbaise 编译是在默认生命周期中验证之前。当它对我的项目有意义时,我可以运行它,阶段不应影响输出。
  • 我知道编译是在验证之前,但如果没有影响,我建议准确测试你提到的内容。

标签: maven-plugin maven-3 checkstyle


【解决方案1】:

我遇到了类似的问题。这个配置对我有用。

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

【讨论】:

    【解决方案2】:

    &lt;violationSeverity&gt;warning&lt;/violationSeverity&gt; 添加到 pom.xml 中的 &lt;configuration&gt; 对我有用:

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

    另外,我的 checkstyle.xml 中有这个:

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

    【讨论】:

      【解决方案3】:

      我假设您必须明确添加检查目标才能将信息以mentioned in the documentation 形式打印到控制台。

        <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 clean verify 并且你可以省略阶段条目。

      【讨论】:

        猜你喜欢
        • 2013-08-25
        • 1970-01-01
        • 2016-05-18
        • 1970-01-01
        • 2019-11-11
        • 2020-11-09
        • 2019-08-17
        • 1970-01-01
        • 2021-04-27
        相关资源
        最近更新 更多