强制执行 Maven 3 的两种主要方法似乎是:
- maven-enforcer-plugin,以及
- pom.xml
<prerequisites>
元素。
最佳的使用方法似乎取决于几个不同的因素。这个问题是为了帮助人们决定哪种方法对他们最有意义。
Question:什么类型的项目结构最适合maven-enforcer-plugin以及什么类型的项目结构最适合pom先决条件。
Maven Enforcer 插件示例
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3</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>
Maven POM 先决条件示例
<project>
...
<prerequisites>
<maven>3.0.5</maven>
</prerequisites>
...
</project>
先决条件已弃用,您应该使用执行器插件。MNG-5297 https://issues.apache.org/jira/browse/MNG-5297请求更新文档以澄清这一点。
The maven-enforcer-plugin
FAQ 解释了差异 https://maven.apache.org/enforcer/maven-enforcer-plugin/faq.html:
为什么我不能只使用 pom 中的先决条件标签?
先决条件标签旨在供插件等工具使用。它适用于常规项目,但不会遗传给他们的孩子。如果它设置在父反应器中,那么 Maven 将进行检查。但是,如果构建了其中一个子级,则不会执行检查。Enforcer 插件旨在允许从单个“super-pom”对构建环境进行集中控制,并通过支持范围在版本规范中提供更大的灵活性。
另外,请注意先决条件不适用于 Maven 3 https://issues.apache.org/jira/browse/MNG-4840.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)