我的项目继承的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或不使用它。
答案 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)。您可以使用变量以避免此行为。你的答案的片段使用它。