执行最低版本的 Maven
Enforce a minimum version of Maven
是否可以在 POM 中指定构建项目所需的最低 Maven 版本?
由于旧版本 Maven 中的错误导致大型工件 (>2GB) 被静默截断,我们一直在浪费大量时间来追查构建我们项目的人的问题。毫不奇怪,这些往往会导致最终产品出现奇怪和损坏的行为。
是的,我们已经声明 3.2.5 是我们打算支持的最低版本,但我想知道:如果版本低于该版本,是否有办法让 Maven 保释?我想我可以轻松地编写一个插件来执行此操作,但这似乎有点过分了。所以,我希望有一个更简单的方法。
您可以使用 maven-enforcer-plugin
and its 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 版本,OS...);查看完整列表 on the plugin documentation.
如果您只需要 maven 版本,则先决条件应该已经完成:
参见:https://maven.apache.org/pom.html#Prerequisites
除此之外的任何内容都需要 enforcer 插件(请参阅其他答案)。
是否可以在 POM 中指定构建项目所需的最低 Maven 版本?
由于旧版本 Maven 中的错误导致大型工件 (>2GB) 被静默截断,我们一直在浪费大量时间来追查构建我们项目的人的问题。毫不奇怪,这些往往会导致最终产品出现奇怪和损坏的行为。
是的,我们已经声明 3.2.5 是我们打算支持的最低版本,但我想知道:如果版本低于该版本,是否有办法让 Maven 保释?我想我可以轻松地编写一个插件来执行此操作,但这似乎有点过分了。所以,我希望有一个更简单的方法。
您可以使用 maven-enforcer-plugin
and its 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 版本,OS...);查看完整列表 on the plugin documentation.
如果您只需要 maven 版本,则先决条件应该已经完成:
参见:https://maven.apache.org/pom.html#Prerequisites
除此之外的任何内容都需要 enforcer 插件(请参阅其他答案)。