maven JaCoCo 仅用于站点阶段

maven JaCoCo for site phase only

我们的 POM 中有 JaCoCo,它 运行 会在我们每次 运行 clean install 时发送和报告。

当maven site 是运行 时,我们真正想做的只是运行 JaCoCo。

我试过添加:

...
<configuration>
<skip>${jacoco.skip}</skip>
....

并在构建阶段将 jacoco.skip 设置为 true,但在报告部分,我添加了:

...
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>   
<configuration>
    <skip>false</skip>
    <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
...

但这不起作用。将 jacoco.skip 设置为 true 确实会阻止 JaCoCo 运行ning 在正常的 Maven 全新安装中,但似乎也会影响报告。

问题:我将如何配置 maven 以便 JaCoCo 运行 成功用于 maven 站点,但不会 运行 用于 mvn clean install?

最简单的方法是将其委派给 Maven profile,删除其 build 部分的配置并将其放入配置文件中,如下所示:

<profiles>
    <profile>
        <id>jacoco</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.1.201405082137</version>
                    <configuration><!-- here --></configuration>
                </plugin>
            </plugins>
        </build>

        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.1.201405082137</version>
                </plugin>
            </plugins>
        </reporting>
    </profile>
</profiles>

然后您可以在那里添加您的自定义配置。

那么普通构建将不会应用它,而您始终可以通过以下方式激活它:

mvn clean install -Pjacoco

mvn site -Pjacoco