如果Cobertura报告的代码覆盖率限制未得到满足,我已将项目的Maven构建配置为失败。工作良好。当我使用Maven的网站生成工具时,我现在尝试在Cobertura报告中生成并链接,但在执行mvn site
时出现此错误:
Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project kb-framework:
failed to get report for org.codehaus.mojo:cobertura-maven-plugin: Failed to execute goal org.codehaus.mojo:cobertura-maven-plugin:2.7:instrument
(cobertura-check) on project kb-framework:
Unable to prepare instrumentation directory. source and destination are the same directory.
使用下面配置的pom.xml,我可以:
mvn verify
并查看构建通过/失败mvn site
工作。在构建期间没有进行检查。当我按照配置进行mvn site
时,测试和检测似乎会运行两次。
这个错误似乎也是因为第二个仪器正在完成。如果我用cobertura报告生成目标替换cobertura检查目标,则构建仍然会失败并显示相同的消息。所以检查目标不是问题,仪器是。
所以:任何人都可以帮我配置我的pom.xml以在mvn verify
上传递/失败构建并在执行mvn site
时生成并链接HTML报告吗?
以下是pom.xml的相关部分:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<check>
<branchRate>85</branchRate>
<lineRate>90</lineRate>
<haltOnFailure>true</haltOnFailure>
<totalBranchRate>90</totalBranchRate>
<totalLineRate>90</totalLineRate>
<packageBranchRate>90</packageBranchRate>
<packageLineRate>90</packageLineRate>
</check>
<instrumentation>
<excludes>
<!-- some excludes in here -->
</excludes>
</instrumentation>
</configuration>
<executions>
<execution>
<id>cobertura-clean</id>
<phase>verify</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
<execution>
<id>cobertura-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<reporting>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</reporting>
答案 0 :(得分:0)
我明白了。显然我需要在站点生成期间使用干净的目标,然后我可以在构建阶段使用我想要的任何目标。我在pom.xml中添加了一个reportSet块,如下所示;现在我可以在mvn verify
期间收到通过/失败,并在mvn site
期间在报告中链接,而不会显示错误消息。
pom.xml(问题中描述的构建阶段):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
<reportSets>
<reportSet>
<id>cobertura-report</id>
<reports>
<report>clean</report>
<report>cobertura</report>
</reports>
</reportSet>
</reportSets>
</plugin>