Maven POM可以并且应该指定它需要Maven 3还是更新版本?
我目前正在对使用Maven的Java项目进行一些清理,并使用NetBeans IDE来“调试”POM中的问题。我已经在IDE中将Maven 3.0.4设置为Maven版本,但其他开发人员或我们的ContrakensingIngeration系统可能具有不同的设置。
是否可以直接在 POM 中“强制”特定的 Maven 版本(例如,通过使用 Maven 3 特定元素)?
我目前正在对使用Maven的Java项目进行一些清理,并使用NetBeans IDE来“调试”POM中的问题。我已经在IDE中将Maven 3.0.4设置为Maven版本,但其他开发人员或我们的ContrakensingIngeration系统可能具有不同的设置。
是否可以直接在 POM 中“强制”特定的 Maven 版本(例如,通过使用 Maven 3 特定元素)?
是的,你可以,你应该。某些 Maven 插件需要 Maven 3 或更高版本。
通过将以下内容添加到您的:pom.xml
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-maven-3</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.5</version>
</requireMavenVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
另一种选择是在 pom 中使用 prerequisites 元素,例如:
<project>
...
<prerequisites>
<maven>3.0.0</maven>
</prerequisites>
...
</project>
正如Michal Kalinowski的答案所指出的 - 这种简单的方法不适用于儿童项目。
有关哪种方法最适合您的摘要,请参阅此处:强制执行 maven 3 - 何时使用 maven 执行器插件?何时使用 pom 先决条件元素?