使用maven生成html checkstyle报告

时间:2017-12-28 15:32:58

标签: xml maven xslt maven-plugin checkstyle

maven-checkstyle-plugin包含在编译阶段的生命周期中.FailOneError配置已启用。它生成.xml报告并使build崩溃。我想使用我的自定义.xsl文件获取html版本进行转换。为此,我使用xml-maven-plugin但我无法将其配置为自动执行,无法集成到生命周期。

  

我必须执行这些步骤:
  1)运行“mvn install”
  2)maven-checkstyle-plugin分析代码
  3)插件发现错误并生成xml报告
  4)建设中断   5)xml-maven-plugin自动生成.html报告

我的pom.xml的一部分

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>${checkstyle.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>check</goal>
                    </goals>
                    <phase>compile</phase>
                    <configuration>
                        <configLocation>checkstyle/checkstyle.xml</configLocation>
                        <encoding>UTF-8</encoding>
                        <consoleOutput>true</consoleOutput>
                        <failsOnError>false</failsOnError>
                        <includeTestSourceDirectory>false</includeTestSourceDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>xml-maven-plugin</artifactId>
            <version>${xml.maven.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>transform</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <transformationSets>
                    <transformationSet>
                        <dir>target\</dir>
                        <stylesheet>checkstyle\checkstyle-author.xsl</stylesheet>
                        <includes>checkstyle-result.xml</includes>
                        <fileMappers>
                            <fileMapper
                                    implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
                                <pattern>\.xml$</pattern>
                                <replacement>.html</replacement>
                            </fileMapper>
                        </fileMappers>
                    </transformationSet>
                </transformationSets>
            </configuration>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:1)

您需要密切关注阶段和插件。

checkstyle插件执行阶段&#34;编译&#34;。根据{{​​3}},其默认阶段是&#34; generate-resources&#34;。

所以你需要将这个目标放在the docs of the xml-maven-plugin之后,而不是checkstyle插件(编译后的进程类):

<executions>
  <execution>
    <phase>process-classes</phase>
    <goals>
      <goal>transform</goal>
    </goals>
  </execution>
</executions>

我相信xml插件的日志应该抱怨丢失的文件,或者如果你运行构建两次没有干净的话应该可以工作吗?这不会是一个好结果。因此,在通常最好的时候执行命令的顺序:)