是否可以在POM中指定构建项目所需的最小Maven版本?
我们一直在浪费大量时间来追逐人们构建项目的问题,原因是旧版Maven中的错误导致大型工件(> 2GB)被静默截断。不出所料,这些往往会导致最终产品中出现奇怪和破碎的行为。
是的,我们已经声明3.2.5是我们打算支持的最低版本,但我想知道:如果版本低于那个,有没有办法让Maven保释?我估计我可以轻松编写一个插件来执行此操作,但这似乎有点矫枉过正。所以,我希望有一种更简单的方法。
答案 0 :(得分:13)
您可以使用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>
如果有人尝试使用Maven版本低于3.2.5构建项目,则构建将失败。
您可以使用此插件强制执行许多不同的规则(Java版本,操作系统......);请参阅完整列表on the plugin documentation。
答案 1 :(得分:0)
如果您只需要maven版本,则先决条件应该已经完成:
请参阅:https://maven.apache.org/pom.html#Prerequisites
除此之外的任何内容都需要使用enforcer插件(参见其他答案)。