如何在命令行中定义复杂的 Maven 属性
How to define complex Maven properties in the comand line
我正在使用 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
?
不,您不能在命令行上定义复杂参数。但是您可以实现一个技巧来完成这项工作:定义一个您在命令行上覆盖的 Maven 属性。
您可以配置插件:
<instrumentation>
<excludes>
<exclude>${cobertura.instrumentation.exclude}</exclude>
</excludes>
</instrumentation>
然后,在命令行中,
-Dcobertura.instrumentation.exclude=com/example/dullcode/**/*.class
将正确排除那些 类。如果您不指定系统 属性,则不会排除任何内容。
我正在使用 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
?
不,您不能在命令行上定义复杂参数。但是您可以实现一个技巧来完成这项工作:定义一个您在命令行上覆盖的 Maven 属性。
您可以配置插件:
<instrumentation>
<excludes>
<exclude>${cobertura.instrumentation.exclude}</exclude>
</excludes>
</instrumentation>
然后,在命令行中,
-Dcobertura.instrumentation.exclude=com/example/dullcode/**/*.class
将正确排除那些 类。如果您不指定系统 属性,则不会排除任何内容。