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

Maven父子POM场景下Guava依赖版本确定规则咨询

Maven父POM dependencyManagement与子POM依赖版本规则

父POM的dependencyManagement配置

<dependencyManagement>
   <dependencies>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>32.1.3-jre</version>
      </dependency>
    </dependencies>
</dependencyManagement>

场景1:子POM未声明依赖版本

子POM配置:

<dependencies>
   <dependency>
     <groupId>com.google.guava</groupId>
     <artifactId>guava</artifactId>
   </dependency>
</dependencies>

结论:会使用父POM dependencyManagement中定义的32.1.3-jre版本。dependencyManagement的核心作用是统一管理依赖版本,子POM未指定版本时,自动继承父POM定义的版本。


场景2:子POM声明低于父POM的版本(32.1.2-jre)

子POM配置:

<dependencies>
   <dependency>
     <groupId>com.google.guava</groupId>
     <artifactId>guava</artifactId>
     <version>32.1.2-jre</version>
   </dependency>
</dependencies>

结论:会使用子POM中声明的32.1.2-jre版本。dependencyManagement仅提供版本默认值,子POM显式指定版本时,会覆盖父POM的配置。


场景3:子POM声明高于父POM的版本(32.1.4-jre)

子POM配置:

<dependencies>
   <dependency>
     <groupId>com.google.guava</groupId>
     <artifactId>guava</artifactId>
     <version>32.1.4-jre</version>
   </dependency>
</dependencies>

结论:会使用子POM中声明的32.1.4-jre版本。子POM显式指定的版本优先级高于父POM dependencyManagement中的版本配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:01:22