管理maven站点中的报告插件

时间:2011-12-13 07:09:43

标签: maven maven-2 build cobertura maven-surefire-plugin

我在多模块项目中使用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告诉我实现此目的的正确方法。

1 个答案:

答案 0 :(得分:1)

Cobertura和surefire报告(用于网站生成)做两件事。因此,您无法避免两次运行测试 - 一次用于cobertura,一次用于站点。

你可以看到的是将cobertura从maven默认生命周期中移出并根据需要单独运行。这样,mvn site只能运行网站生成。