我目前正在清理使用Maven的Java项目,并使用NetBeans IDE来“调试"POM中的问题。我在IDE中将Maven 3.0.4设置为Maven版本,但其他开发人员或我们的持续集成系统可能会有不同的设置。是否可以直接在POM中“强制”特定的Maven版本(例如通过使用Maven 3特定的元素)?
bnl4lu3b1#
是的,你可以,你应该。一些Maven插件需要Maven 3或更高版本。通过将以下内容添加到pom.xml来使用maven-enforcer-plugin:
pom.xml
<build> <plugins> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.4.1</version> <executions> <execution> <id>enforce-maven-version</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>3.8.5</version> </requireMavenVersion> </rules> <fail>true</fail> </configuration> </execution> </executions> </plugin> </plugins> </build>
字符串
fsi0uk1n2#
另一种选择是在pom中使用premises元素,例如:
<project> ... <prerequisites> <maven>3.0.0</maven> </prerequisites> ... </project>
字符串正如所指出的Michal Kalinowski's answer-这种简单的方法不太适合儿童项目。有关哪种方法最适合您的摘要,请参阅此处:enforcing maven 3 - when to use maven enforcer plugin? when to use pom prerequisites element?
9wbgstp73#
你可以做的最好的事情是使用Enforcer插件。这里有一个例子:http://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.htmlMaven本身没有现成的方法来做这件事。实际上有prerequisites标记,但它工作得不好,因为孩子不会继承它。
prerequisites
3条答案
按热度按时间bnl4lu3b1#
是的,你可以,你应该。一些Maven插件需要Maven 3或更高版本。
通过将以下内容添加到
pom.xml
来使用maven-enforcer-plugin:字符串
fsi0uk1n2#
另一种选择是在pom中使用premises元素,例如:
字符串
正如所指出的Michal Kalinowski's answer-这种简单的方法不太适合儿童项目。
有关哪种方法最适合您的摘要,请参阅此处:enforcing maven 3 - when to use maven enforcer plugin? when to use pom prerequisites element?
9wbgstp73#
你可以做的最好的事情是使用Enforcer插件。这里有一个例子:
http://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html
Maven本身没有现成的方法来做这件事。实际上有
prerequisites
标记,但它工作得不好,因为孩子不会继承它。