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

5
如何在命令行中覆盖插件的版本而不更改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>

也许你正在寻找这个。https://dev59.com/QW445IYBdhLWcg3w3N6z - Pratik Ambani
该版本可在Maven Central上获取,因为发布是不可变的,这意味着它们永远不会被删除。所以问题必须出现在您的本地设置中。 - khmarbaise
1个回答

5
您可以使用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

如果在命令行中没有设置属性,Maven 将使用来自 pom.xml 的默认值。


3
无疑这是正确的,但是原帖中明确提到“不要更改 pom.xml” 。 - Marcel Stör

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接