簡體   English   中英

Maven 插件 CLI 參數覆蓋<configuration>在 pom.xml 中

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM