【问题标题】:Enforce a minimum version of Maven强制执行 Maven 的最低版本
【发布时间】:2015-10-06 13:46:27
【问题描述】:

是否可以在 POM 中指定构建项目所需的最低 Maven 版本?

由于旧版本 Maven 中的错误会导致大型工件 (>2GB) 被静默截断,我们一直在浪费大量时间从构建我们项目的人员那里寻找问题。不出所料,这些往往会导致最终产品出现奇怪和损坏的行为。

是的,我们已经声明 3.2.5 是我们打算支持的最低版本,但我想知道:如果版本低于该版本,有没有办法让 Maven 保释?我认为我可以很容易地编写一个插件来做到这一点,但这似乎有点过头了。所以,我希望有一个更简单的方法。

【问题讨论】:

    标签: maven maven-enforcer-plugin


    【解决方案1】:

    您可以使用maven-enforcer-plugin 及其enforce 目标来指定所需的最低Maven 版本:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-enforcer-plugin</artifactId>
      <version>1.4.1</version>
      <executions>
        <execution>
          <id>enforce-maven</id>
          <goals>
            <goal>enforce</goal>
          </goals>
          <configuration>
            <rules>
              <requireMavenVersion>
                <version>3.2.5</version>
              </requireMavenVersion>
            </rules>
          </configuration>
        </execution>
      </executions>
    </plugin>
    

    如果有人尝试使用低于 3.2.5 的 Maven 版本构建项目,则构建将失败。

    您可以使用此插件(Java 版本、操作系统...)执行许多不同的规则;查看完整列表on the plugin documentation

    【讨论】:

    • 对于那些阅读此答案的人:3.2.5[3.2.5,) 的快捷方式,否则插件将仅限于 3.2.5。
    • @Michael-O 是的,这是在这个插件的range specification 中指定的。
    【解决方案2】:

    如果您只需要 maven 版本,则先决条件应该已经完成​​了这项工作:

    见:https://maven.apache.org/pom.html#Prerequisites

    除此之外的任何东西都需要执行器插件(请参阅其他答案)。

    【讨论】:

    • 该字段已弃用,仅用于插件。不要使用它。
    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 2021-07-01
    • 2016-03-17
    • 2013-11-01
    • 2013-07-27
    相关资源
    最近更新 更多