You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven动态更新父POM的artifactId与版本?

更新Maven父POM的artifactId与version的方法

当然可以更新父POM的artifactId和version!Versions插件不止能修改子项目版本,也有对应的手段处理父POM的配置,我给你拆解下具体操作:

1. 更新父POM的版本号

如果你只是想修改父POM的version,可以用versions:update-parent目标——它既可以自动匹配仓库里的最新版本,也支持指定具体版本:

  • 自动更新到最新的快照版本:
    mvn org.codehaus.mojo:versions-maven-plugin:2.7:update-parent -DallowSnapshots=true
    
  • 指定具体版本号进行更新:
    mvn org.codehaus.mojo:versions-maven-plugin:2.7:update-parent -DparentVersion=1.1.0-SNAPSHOT
    

默认情况下,这个目标只会查找正式发布(release)版本,加上-DallowSnapshots=true才会纳入快照版本的范围。

2. 修改父POM的artifactId(或groupId)

Versions插件没有直接修改父POMartifactId的单项目目标,但我们可以通过属性占位+修改属性的方式实现:
首先,把你的子POM里的父配置抽成属性占位:

<properties>
  <parent.artifactId>my-parent</parent.artifactId>
  <parent.version>1.0.0</parent.version>
</properties>
<parent>
  <groupId>com.company</groupId>
  <artifactId>${parent.artifactId}</artifactId>
  <version>${parent.version}</version>
</parent>

之后就可以用versions:set-property来修改对应的属性值了:

# 修改父POM的artifactId
mvn org.codehaus.mojo:versions-maven-plugin:2.7:set-property -Dproperty=parent.artifactId -DnewValue=new-parent-artifactId
# 用同样的方式修改父POM的version也可行
mvn org.codehaus.mojo:versions-maven-plugin:2.7:set-property -Dproperty=parent.version -DnewValue=1.2.3-SNAPSHOT

额外提示

  • 如果是多模块项目,想要批量修改所有子模块的父POM配置,只需要在命令后加上-DprocessAllModules参数,插件就会遍历所有模块执行操作。
  • 修改artifactId时一定要谨慎,这会直接改变依赖的坐标,务必确保新的artifactId对应的父POM已经存在于你的本地或远程仓库中。

内容的提问来源于stack exchange,提问作者dehasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:05:14