2011-01-11 104 views
15

我的項目繼承的POM包含一些<pluginManagement>release插件指定了一些額外的arguments從命令行覆蓋在pom pluginManagement中定義的Maven插件配置

我的問題是:有沒有辦法在這種情況下從命令行覆蓋arguments參數?

父POM具有這樣的:

<pluginManagement> 
    <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <configuration> 
      <arguments>-Prelease</arguments> 
     </configuration> 
    </plugin> 
</pluginManagement> 

由於該命令行參數不起作用:

mvn release:prepare -Darguments="-Pmock -Prelease" 

-Darguments="-Pmock -Prelease"部分沒有任何影響。當arguments尚未指定時,它可以工作。

我不可能修改父POM或不使用它。

回答

10

找到了解決方案。在我的 POM我添加這個覆蓋父母 POM中的設置,並允許在命令行上指定其他參數,例如, -Darguments=-Pmock

<pluginManagement> 
    <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <configuration> 
      <arguments>${arguments} -Prelease</arguments> 
     </configuration> 
    </plugin> 
</pluginManagement> 
6

不能覆蓋的配置,這是已經在POM設置(見Maven Bug MNG-4979)。你可以使用變量來避免這種行爲。你的答案片段使用它。

+0

MNG-4979的更新鏈接:https://issues.apache.org/jira/browse/MNG-4979 – erwaman 2017-04-04 17:41:18

相關問題