【问题标题】:Override Maven Plugin Version from Command Line?从命令行覆盖 Maven 插件版本?
【发布时间】:2017-07-27 03:41:18
【问题描述】:

如何在命令行中在不更改 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>

【问题讨论】:

标签: maven plugins compilation dependencies overriding


【解决方案1】:

您可以使用 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 中的默认值

【讨论】:

  • 这当然是正确的,但 OP 声明“无需更改 pom.xml”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多