通过Maven命令行生成多个Cobertura报告格式

时间:2014-12-03 00:20:31

标签: java maven sonarqube cobertura maven-cobertura-plugin

使用Maven,我可以通过更改我的POM的报告部分来生成Cobertura的多种不同类型的代码覆盖率报告...

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <configuration>
        <formats>
            <format>html</format>
            <format>xml</format>
        </formats>
    </configuration>
</plugin>

或者,我可以从Maven命令行生成单一类型的报告,ala ...

mvn clean cobertura:cobertura -Dcobertura.report.format=xml 

如何从Maven命令行生成多种不同的报告类型?

显然,我只能做一个。 ...我在下面尝试了这个,它不起作用!

mvn clean cobertura:cobertura -Dcobertura.report.formats=xml,html

(注意:上述属性使用&#34;格式&#34;与&#34;格式&#34;。上述始终创建默认HTML报告而不会看到两种指定格式。我使用Maven 3.2.3和Cobertura插件版本2.0.3。)

请帮忙,我的Googol Fu失败了。 ......任何人都知道这是否可能?

1 个答案:

答案 0 :(得分:3)

看起来不可能......

来自Sonatype博文Configuring Plugin Goals in Maven 3

  

最新的Maven版本最终允许插件用户进行配置   来自命令行的集合或数组通过逗号分隔   字符串。

     

希望启用基于CLI的配置的插件作者   数组/集合只需要将表达式标记添加到它们的   参数注释。

但在code of the plugin

/**
 * The format of the report. (supports 'html' or 'xml'. defaults to 'html')
 * 
 * @parameter expression="${cobertura.report.format}"
 * @deprecated
 */
private String format;

/**
 * The format of the report. (can be 'html' and/or 'xml'. defaults to 'html')
 * 
 * @parameter
 */
private String[] formats = new String[] { "html" };

正如您所看到的,formats没有expression标记(与format不同),因此无法从命令行进行配置。

更新

我刚刚意识到我回答了错误的问题:)我回答的问题是&#34;如何从Maven命令行生成多种不同的报告类型使用&#39;格式&#39;选项?&#34 ;.但原始问题是&#34;如何从Maven命令行生成多种不同的报告类型?&#34;

实际上有一个简单的解决方法 - 运行maven两次(第二次没有clean),如下所示:

mvn clean cobertura:cobertura -Dcobertura.report.format=xml
mvn cobertura:cobertura -Dcobertura.report.format=html