[英]Maven plugin CLI parameter overwriting <configuration> in pom.xml
Maven 插件如何/应该如何处理配置选项的顺序? 我希望通过 CLI 传递的属性会覆盖pom.xml
<configuration>
块中定义的属性。
这是一个例子。
pom.xml
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<version>1.2.3</version>
<executions>
...
</executions>
<configuration>
<url>foo.com</url>
</configuration>
</plugin>
命令行界面
mvn group:artifact:1.2.3:doit -Dmymojo.url=bar.com
我目前正在调试一个插件(不是我的),它优先考虑 POM 中定义的url
值,而不是通过 CLI 传递的值。 这就是 mojos 应该如何表现,即 Maven 功能而不是插件错误? 我没有找到参考指南中提到的任何内容。
根据https://issues.apache.org/jira/browse/MNG-4979这按设计工作。 我觉得这违反直觉,并且认为 MNG-4979 中给出的理由令人信服。
如果您的设置允许修改pom.xml
您可以按照 JF Meier 的建议解决此行为(以及上述问题)。
<properties>
<mymojo.url>foo.bar</mymojo.url>
</properties>
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<version>1.2.3</version>
<executions>
...
</executions>
<configuration>
<url>${mymojo.url}</url>
</configuration>
</plugin>
通过命令行,您可以设置一个属性url
。 这将覆盖 POM 的<properties>
部分中的条目<url>foo.com</url>
。
许多插件允许通过属性设置配置条目,但这些属性不会自动具有相同的名称。 在文档中,这通常称为user property 。 要查看示例,请查看例如
https://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.