如何为多个Maven项目设置指定版本的父POM?
批量更新父POM版本的可行方案
方法1:用maven versions插件的versions:update-parent命令
- 先手动修改
/projects/parent-bom/pom.xml,把自身版本改成jira-1234,如果需要发布到仓库,执行mvn deploy或者mvn install。 - 进入需要更新的项目目录(比如
main-project、support-project),执行以下命令:
mvn versions:update-parent -DparentVersion=jira-1234
这个命令会自动定位项目里的父POM配置,把版本替换成指定的jira-1234。
3. 确认修改没问题的话,执行mvn versions:commit保存更改;如果想撤销,用mvn versions:revert。
方法2:批量文本替换(适合本地快速修改)
如果不想折腾maven插件,直接用文本替换工具批量改所有pom.xml:
- Linux/macOS环境,在
/projects目录下执行:
# 先改parent-bom自己的版本 sed -i 's/<version>原父版本号<\/version>/<version>jira-1234<\/version>/g' parent-bom/pom.xml # 再改其他项目的父版本 sed -i 's/<version>原父版本号<\/version>/<version>jira-1234<\/version>/g' main-project/pom.xml main-project/sub/pom.xml support-project/pom.xml
- Windows环境可以用PowerShell命令,或者用Notepad++的“查找替换”功能,勾选“在所有打开的文件中替换”,批量修改所有pom.xml。
方法3:聚合项目批量处理
如果所有项目都在同一个目录下,建个临时聚合pom来批量操作:
- 在
/projects目录下新建temp-pom.xml,内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>temp-aggregator</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <modules> <module>parent-bom</module> <module>main-project</module> <module>support-project</module> </modules> </project>
- 先更新parent-bom的版本:
mvn -f parent-bom/pom.xml versions:set -DnewVersion=jira-1234
- 批量更新所有子项目的父版本:
mvn -f temp-pom.xml versions:update-parent -DparentVersion=jira-1234
- 执行
mvn -f temp-pom.xml versions:commit确认所有修改,之后删掉临时的temp-pom.xml就行。
内容的提问来源于stack exchange,提问作者Roland
相关产品推荐
相关产品推荐

