Override Maven plugin configuration defined in the

2019-04-04 00:22发布

The POM that my project inherits contains some <pluginManagement> for the release plugin that specifies some additional arguments.

My question is: Is there a way to override the arguments parameter from the command line in this case?

The parent POM has this:

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

Due to that the command line argument doesn't work:

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

The -Darguments="-Pmock -Prelease" part has no effect. When arguments is not already specified, it works.

It is not possible for me to modify the parent POM or not to use it.

2条回答
唯我独甜
2楼-- · 2019-04-04 00:42

You cannot override a configuration, which is already set in the POM (see Maven Bug MNG-4979). You may use variables in order to avoid this behaviour. The snippet of your answer makes use of it.

查看更多
戒情不戒烟
3楼-- · 2019-04-04 00:49

Found the solution. In my POM I add this which overrides the settings in the parent POM and allows to specify additional arguments on command line, e.g. -Darguments=-Pmock

<pluginManagement>
    <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
            <arguments>${arguments} -Prelease</arguments>
        </configuration>
    </plugin>
</pluginManagement>
查看更多
登录 后发表回答