我在多模块项目中使用Maven 3,并使用以下报告插件配置了站点: 1. findbugs cobertura 3. surefire报告测试
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.version}</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
</reportPlugins>
</configuration>
</plugin>
如果我使用:
mvn site -DskipTests =在mvn clean install之后为true
我在mvn网站后没有得到正确的报告。 Cobertura相关的测试覆盖率报告未显示正确的数据,即所有包裹均为0%测试覆盖率。似乎cobertura希望自己运行测试以确定覆盖范围。
但是当我跑
时mvn site
这使我的所有测试每次运行两次,用于cobertura和surefire报告。
我想只运行一次测试并生成所需的报告。请使用maven上面的reportPlugins告诉我实现此目的的正确方法。
答案 0 :(得分:1)
Cobertura和surefire报告(用于网站生成)做两件事。因此,您无法避免两次运行测试 - 一次用于cobertura,一次用于站点。
你可以看到的是将cobertura从maven默认生命周期中移出并根据需要单独运行。这样,mvn site
只能运行网站生成。