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

Maven中Parent POM与Super POM是否相同?二者继承关系如何?

Maven Parent POM与Super POM的区别及继承关系说明

核心结论

Parent POM和Super POM完全不是同一个概念,你提到的第二种继承层级是正确的:deps2 → deps → Maven官方提供的Super POM,不存在没有Super POM的情况。

两个概念的明确区分

  • Super POM:是Maven内核内置的顶层默认POM,属于官方提供的基础配置,所有Maven项目默认都会直接或间接继承该POM。它预定义了所有项目通用的基础配置,比如默认构建输出目录为target、官方公共仓库地址、默认插件版本规则等,是整个Maven POM继承体系的最顶端根节点。
  • Parent POM:指开发者在项目中通过<parent>标签显式声明的自定义父POM,一般用于多模块项目中抽离公共依赖、依赖版本管理、公共插件配置等重复内容,减少子模块的冗余代码,你示例中的deps就属于deps2的自定义Parent POM,不能将其称作Super POM。

示例项目的完整继承链

你的两个POM配置如下:

自定义父POM(deps)

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.demo</groupId>
    <artifactId>deps</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <dependencyManagement>
            <dependencies>
                   <!-- not relevant for this question -->
            </dependencies>
        </dependencyManagement>
    <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.3.12</version>
            </dependency>
    </dependencies>
</project>

子POM(deps2)

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.demo</groupId>
    <artifactId>deps2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
       <groupId>com.demo</groupId>
       <artifactId>deps</artifactId>
       <version>0.0.1-SNAPSHOT</version>
    </parent>
    <dependencies>
                           <!-- not relevant for this question -->

    </dependencies>
</project>

由于你自定义的deps本身就是一个Maven项目,哪怕你没有为它显式声明父POM,它也会默认继承Maven的Super POM,因此完整继承链为:
deps2 → 自定义父POM deps → Maven官方内置Super POM

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:04