记录一次okhttp包版本引用被覆盖的问题

一、现象

           1.实现了一个框架包,其父包控制了okhttp版本号。

	<dependencyManagement>
			<dependency>
				<groupId>com.squareup.okhttp3</groupId>
				<artifactId>okhttp</artifactId>
				<version>3.14.7</version>
			</dependency>
</dependencyManagement>

     2.外部服务引用引用此框架包。

   <dependency>
            <groupId>com.xx.open</groupId>
            <artifactId>xx-open-client</artifactId>
            <version>4.4.4-SNAPSHOT</version>
        </dependency>

然后查看okhttp的版本号为4.9.3,而不是框架内指定的版本号。

二、原因分析

由于外部服务的父包引入了springboot的IMPORT的BOM表单定义,而springboot的 dependies又定义了okhttp的版本号所致。

父包

    <dependencyManagement>
        <dependencies>

          

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.7.18</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

springboot dependenies

    <okhttp.version>4.9.3</okhttp.version>
  <dependencyManagement>     
 <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp-bom</artifactId>
        <version>${okhttp.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

三、总结

自身父包定义的组件版本号优先级高于外包部间接依赖的父包中定义的组件版本号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值