(改写问题以便更好地理解) 要详细说明我的问题,这个问题不够详细,以下是我遇到的情况: 项目:A和B. A的根pom是项目B的父项。
由于我们的发布过程存在一些限制(这是为了给出一些当前的上下文,但这不应被视为绕过手头问题的主要驱动因素),我需要更改两个项目的版本。
如果我更改A的版本,然后更改B的版本,我收到以下错误消息:
mvn versions:update-parent -DallowSnapshots -DgenerateBackupPoms=false -DparentVersion="6.4.1-SNAPSHOT"
[WARNING] Not updating version: could not resolve any versions
如果我更改了A的版本,请在A上调用mvn clean install
(我可以使用它,尽管我希望能够在脚本中同时更改所有项目的版本和父版本,而不是中间,可能失败,构建),然后B上面的命令工作,但只有当指定的父版本是最新的可用时。否则我得到:
[INFO] Current version of parentGroup:parentArtifact:pom:7.0.12 is the latest.
这意味着我无法使用mvn versions:update-parent
命令更改维护分支上的父版本。
有没有办法让mvn versions:update-parent
尊重所需的父版本? (无论是否可以在本地,nexus存储库中找到它,或者根本不存在)
编辑:-X
的其他信息(删除不相关的部分,强调我的)
[DEBUG] Configuring mojo 'org.codehaus.mojo:versions-maven-plugin:2.5:update-parent' with basic configurator -->
[DEBUG] (f) allowSnapshots = true
[DEBUG] (f) generateBackupPoms = false
(...)
[DEBUG] (f) parentVersion = 7.0.11
[DEBUG] Determining update check for artifact groupId:artifactIdProjectA (C:\Users\donckels\.m2\repository\.......\artifactIdProjectA\maven-metadata-....-repository.xml) from ....-repository (http://..../nexus/content/groups/public)
(....)
[DEBUG] Searching for ....-repository.maven-metadata-....-repository.xml.lastUpdated in resolution tracking file.
[DEBUG] Reading resolution-state from: C:\Users\donckels\.m2\repository\.....\artifactIdProjectA\resolver-status.properties
(....)
[DEBUG] Proposal is to update from 7.0.12 to 7.0.12
[INFO] Current version of groupId:artifactIdProjectA:pom:7.0.12 is the latest.
即使我指定了7.0.11,它也会以:
结束[DEBUG] Proposal is to update from 7.0.12 to 7.0.12
答案 0 :(得分:0)
因为我想使用的版本是本地构建的版本
然后构建父项的步骤不应该只是mvn clean build
,而是mvn clean install
:这会将工件缓存在Jenkins代理本地maven缓存中。
将在稍后构建的版本
然后,您的工作应该有一个初步步骤,在当前步骤调用mvn versions:update-parent
之前构建并安装新的父版本。
尽管OP评论:
绊倒点是版本周围的一组方括号,除了"之前构建的"要求。
没有这些方括号,如果版本不是最新版本,则会忽略该版本。
请参阅" Version Range Specification"
[1.0] x == 1.0