在 Maven 中,依赖版本冲突默认遵循 "最短路径优先" 和 "最先声明优先" 原则。当你直接引入 hutool-all:5.8.38
但被其他依赖(如 spx-boot-starter
)传递性引入的 hutool-all:5.8.10
覆盖时,可通过以下方法强制使用指定版本:
锁定版本在
中声明所需版本,强制所有传递依赖使用此版本:
cn.hutool
hutool-all
5.8.38
在 spx-boot-starter
中排除 hutool-all
,然后单独引入所需版本:
com.spx
spx-boot-starter
${spx-cloud.version}
cn.hutool
hutool-all
cn.hutool
hutool-all
5.8.38
声明顺序(Maven 3.8.1+)在 Maven 3.8.1 及以上版本中,依赖声明顺序优先于路径长度。确保你显式声明的依赖在传递依赖之前:
cn.hutool
hutool-all
5.8.38
com.spx
spx-boot-starter
${hailian-cloud.version}
执行以下命令检查依赖树,确认 hutool-all
版本已更新:
mvn dependency:tree | grep hutool-all
# 输出应为:
# [INFO] +- cn.hutool:hutool-all:jar:5.8.38:compile
:这是最干净的方法,不会修改原始依赖结构。5.8.38
与 spx-boot-starter
兼容,必要时联系库作者确认。通过上述方法,你可以强制 Maven 使用指定版本的依赖,解决版本冲突问题。
参与评论
手机查看
返回顶部