如何在命令行中定义复杂的Maven属性

时间:2016-10-13 14:05:36

标签: maven maven-cobertura-plugin

我正在使用Maven cobertura plugin检索我的单元测试代码覆盖,并通过命令行使用它:

mvn cobertura:cobertura

我想要做的是从命令行配置排除项。从官方文档中可以看出,我们可以配置一个  instrumentation user property

此Instrumentation Configuration对象具有以下结构:

<instrumentation>
  <excludes>
    <exclude>com/example/dullcode/**/*.class</exclude>
  </excludes>
</instrumentation>

是否有任何方法只使用

形式的命令行来配置上述复杂对象
-Dcobertura.instrumentation.excludes.<something>=com/example/dullcode/**/*.class

1 个答案:

答案 0 :(得分:3)

不,您无法在命令行上定义复杂参数。但是你可以实现一个技巧来完成这项工作:定义你在命令行上覆盖的Maven属性。

您可以使用以下命令配置插件:

<instrumentation>
  <excludes>
    <exclude>${cobertura.instrumentation.exclude}</exclude>
  </excludes>
</instrumentation>

然后,在命令行上,有

-Dcobertura.instrumentation.exclude=com/example/dullcode/**/*.class

将正确排除这些类。如果您没有指定系统属性,则不会排除任何内容。