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

如何在子POM中动态声明Maven父POM版本?

动态切换父POM版本的解决方案

Maven不允许在父POM定义中引用${project.parent.version}这类依赖父POM加载的属性,但可以通过以下几种方式实现动态指定父POM版本:

1. 命令行参数传递版本

直接在构建时通过系统参数指定父POM版本,无需修改子项目POM:

子项目POM中配置:

<parent>
    <groupId>org.example</groupId>
    <artifactId>example-parent-pom</artifactId>
    <version>${parent.version}</version>
    <relativePath/>
</parent>

构建时指定版本:

  • 使用1.0版本父POM:mvn clean install -Dparent.version=1.0
  • 使用2.0版本父POM:mvn clean install -Dparent.version=2.0

这种方式适合临时切换版本,无需改动代码。

2. 利用Maven Profiles固化版本选项

在子项目POM中定义不同的Profile,每个Profile对应一个父POM版本,方便团队统一使用:

<profiles>
    <!-- 默认使用1.0版本父POM -->
    <profile>
        <id>parent-v1</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <parent.version>1.0</parent.version>
        </properties>
    </profile>
    <!-- 2.0版本父POM的Profile -->
    <profile>
        <id>parent-v2</id>
        <properties>
            <parent.version>2.0</parent.version>
        </properties>
    </profile>
</profiles>

<parent>
    <groupId>org.example</groupId>
    <artifactId>example-parent-pom</artifactId>
    <version>${parent.version}</version>
    <relativePath/>
</parent>

构建时激活对应Profile:

  • 切换到2.0版本:mvn clean install -Pparent-v2
  • 使用默认1.0版本:直接运行mvn clean install即可

3. 多模块工程中统一管理(适用于子项目同属一个顶层模块)

如果所有子项目属于同一个多模块工程,可以在顶层POM中定义全局属性,子项目按需覆盖:

顶层POM配置

<properties>
    <!-- 默认父POM版本为1.0 -->
    <parent.version>1.0</parent.version>
</properties>

<modules>
    <module>sub-proj-common</module> <!-- 使用默认1.0版本 -->
    <module>sub-proj-new</module> <!-- 要使用2.0版本,在子POM中覆盖属性 -->
</modules>

需要用2.0版本的子项目POM配置

<!-- 覆盖顶层POM的属性,指定2.0版本 -->
<properties>
    <parent.version>2.0</parent.version>
</properties>

<parent>
    <groupId>org.example</groupId>
    <artifactId>example-parent-pom</artifactId>
    <version>${parent.version}</version>
    <relativePath/>
</parent>

这样构建整个多模块工程时,不同子项目会自动使用各自配置的父POM版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:48:18