Maven POM可以并且应该指定它需要Maven 3还是更新版本?

2022-09-01 22:42:16

我目前正在对使用Maven的Java项目进行一些清理,并使用NetBeans IDE来“调试”POM中的问题。我已经在IDE中将Maven 3.0.4设置为Maven版本,但其他开发人员或我们的ContrakensingIngeration系统可能具有不同的设置。

是否可以直接在 POM 中“强制”特定的 Maven 版本(例如,通过使用 Maven 3 特定元素)?


答案 1

是的,你可以,你应该。某些 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>

答案 2

另一种选择是在 pom 中使用 prerequisites 元素,例如:

<project>
   ...
   <prerequisites>
       <maven>3.0.0</maven>
   </prerequisites>
   ...
</project>

正如Michal Kalinowski的答案所指出的 - 这种简单的方法不适用于儿童项目。

有关哪种方法最适合您的摘要,请参阅此处:强制执行 maven 3 - 何时使用 maven 执行器插件?何时使用 pom 先决条件元素?


推荐