16

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

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

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

4

2 回答 2

25

您可以使用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 版本、操作系统...)执行许多不同的规则;请参阅插件文档的完整列表。

于 2015-10-06T13:51:37.860 回答
0

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

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

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

于 2015-10-06T15:01:30.307 回答