从命令行覆盖pom pluginManagement中定义的Maven插件配置

时间:2011-01-11 16:38:15

标签: java maven-2 maven maven-release-plugin

我的项目继承的POM包含<pluginManagement>插件的一些release,用于指定一些额外的arguments

我的问题是:在这种情况下,有没有办法在命令行中覆盖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或不使用它。

2 个答案:

答案 0 :(得分:10)

找到解决方案。在 my POM中,我添加了这个,它会覆盖 parent POM中的设置,并允许在命令行上指定其他参数,例如: -Darguments=-Pmock

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

答案 1 :(得分:7)

您无法覆盖已在POM中设置的配置(请参阅Maven Bug MNG-4979)。您可以使用变量以避免此行为。你的答案的片段使用它。