gpt4 book ai didi

maven - 为什么 Maven 版本插件在被告知不升级主要版本时升级主要版本?

转载 作者:行者123 更新时间:2023-12-04 16:38:38 30 4
gpt4 key购买 nike

我不知道我是不是在 Maven 版本插件中遇到了一个错误,或者有什么我不理解的地方......我正在使用 versions:use-latest-releases更新 pom 文件中依赖项的版本,指定不允许使用 -DallowMajorUpdates=false 进行重大更新。 maven 似乎根据输出选择了该功能(见下文),但随后我确实升级了 Tomcat 的主要版本(见下文)。

注意:我屏蔽了项目名称,但其余的都是逐字的。

C:\>mvn clean versions:use-latest-releases -DallowMajorUpdates=false
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building XXXXXXXXXXX 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ XXXXXXXXXXX ---
[INFO]
[INFO] --- versions-maven-plugin:2.1:use-latest-releases (default-cli) @ XXXXXXXXXXX ---
[INFO] Minor version changes allowed
Props: {project.version=1.0-SNAPSHOT, project.artifactId=XXXXXXX, project.groupId=xxx.xxx.xxxxxx}
[INFO] Updated org.apache.tomcat:servlet-api:jar:6.0.33 to version 7.0.0.RC3
[... more stuff ...]

有什么想法吗?谢谢。

最佳答案

我猜这与 servlet-api (7.0.0.RC3) 的版本号有关,它不是符合 maven 的版本号。 Maven 和版本插件需要这样的东西:

<major version>.<minor version>.<incremental version>-<qualifier>

不匹配的版本号也会弄乱 maven 版本范围。我不知道版本号插件是如何做到这一点的,但是 Maven 将对不匹配模式的版本号使用字符串比较,因此对主要版本和次要版本一无所知。参见 Project Versions .

也许您可以通过使用版本插件的规则并忽略所有以 7 开头的版本来修复此行为(参见 Rules )。我从未使用过它们,因此除了文档之外我无法提供任何帮助。

关于maven - 为什么 Maven 版本插件在被告知不升级主要版本时升级主要版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25087617/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com