Springboot怎么升级多层依赖下的依赖包?

mrcaptain
  • 185

因为依赖包安全漏洞原因,需要升级多级依赖下的一个包(不能整体升级), 怎么处理呢?

场景:
A 依赖 B 依赖 C, B和C的pom文件多有很多个dependency, 现在想要升级C 里面的一个包的版本, 怎么处理呢 ?

回复
阅读 1.1k
1 个回答

com.github.jsqlparser:jsqlparser:jar:4.3为例
POM

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

依赖tree

[INFO] +- com.baomidou:mybatis-plus-boot-starter:jar:3.5.1:compile
[INFO] |  +- com.baomidou:mybatis-plus:jar:3.5.1:compile
[INFO] |  |  \- com.baomidou:mybatis-plus-extension:jar:3.5.1:compile
[INFO] |  |     \- com.baomidou:mybatis-plus-core:jar:3.5.1:compile
[INFO] |  |        +- com.baomidou:mybatis-plus-annotation:jar:3.5.1:compile
[INFO] |  |        \- com.github.jsqlparser:jsqlparser:jar:4.3:compile
[INFO] |  \- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.4.RELEASE:compile

修改 POM

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
    <exclusions>
        <exclusion>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>4.4</version>
</dependency>

依赖tree

[INFO] +- com.baomidou:mybatis-plus-boot-starter:jar:3.5.1:compile
[INFO] |  +- com.baomidou:mybatis-plus:jar:3.5.1:compile
[INFO] |  |  \- com.baomidou:mybatis-plus-extension:jar:3.5.1:compile
[INFO] |  |     \- com.baomidou:mybatis-plus-core:jar:3.5.1:compile
[INFO] |  |        \- com.baomidou:mybatis-plus-annotation:jar:3.5.1:compile
[INFO] |  \- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.4.RELEASE:compile
[INFO] +- com.github.jsqlparser:jsqlparser:jar:4.4:compile

其实就是在A中把C的相应Jar包exclusion掉,然后在A重新增高版本的依赖。

需注意兼容问题
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏