[英]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.