从命令行覆盖Maven插件版本?

时间:2017-03-07 03:33:06

标签: maven plugins compilation dependencies override

如何在命令行中覆盖插件的版本而不用更改pom.xml?

更具体地说:

我无法编译apache shiro commit 8dd6a13。原因是buildnumber-maven-plugin版本1.0-beta-4不再可用。 当我修改pom.xml并将插件版本更改为1.0时,我可以编译该项目。 我想保持项目不变,只是在从命令行运行mvn时设置插件的版本。 我很感激任何见解和帮助。

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.0-beta-4</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>create</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <doCheck>false</doCheck>
                <doUpdate>false</doUpdate>
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:3)

您可以使用maven属性设置默认版本,当您从命令行运行时,您可以覆盖它。

<properties>
    <buildnumber.version>1.0-beta-4</buildnumber.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>${buildnumber.version}</version>

        ...

        <plugin>
    <plugins>
<build>

现在你可以运行,例如:

mvn clen install -Dbuildnumber.version=1.0

命令行中没有settings属性maven将使用pom.xml中的default