[英]Spring Dependency Mess - conflict with Spring Boot 2.5.4 and Spring Cloud 3.0.3
我正在尝试更新一个已经放入厨房水槽的应用程序(或者可能有几个,它们是在臀部加入的)并且我正在通过版本冲突进行分类。
我想更新到 Spring Boot 2.5+ 并使用 Spring Cloud Consul - 我正在尝试引入:
对于奖励积分,在 spring-cloud-starter-consul-discovery 中,我看到它引入了 reactor-core:3.4.6,同时引入了 reactor-extra:3.4.3(引入了 reactor-core:3.4 .5). 名单还在继续……
https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery/3.0.3/jar - 最初的争论点是它引入了 spring boot 2.4.6.. . 它被宣传为支持 2.5+,那么该版本不应该引用 2.5+ 吗?
https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-loadbalancer/3.0.3/jar - 这对我来说只是懒惰,reactor-core 正下方是 reactor-extra,为什么Spring 开发人员是否在同一版本的核心中进行了额外的拉动? 参见: https://search.maven.org/artifact/io.projectreactor.addons/reactor-extra/3.4.3/jar
虽然这是一个需要解决的小问题,但它不应该是我的问题。 我是否遗漏了什么,或者这就是它的方式,我不应该期待更多?
首先,您需要查看云和引导依赖项之间的兼容性矩阵。 然后,您需要(例如)生成您的bom,您在其中导入
这些 boms 在内部要么导入其他boms,例如您感兴趣的 consul,版本为2.2.8.RELEASE
。 查看该文件中的properties
标记并看到:
<spring-cloud-consul.version>2.2.8.RELEASE</spring-cloud-consul.version>
具体来说:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-dependencies</artifactId>
<version>${spring-cloud-consul.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后可以查看具体的consul bom ,看到consul-discovery
的版本是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>${project.version}</version>
</dependency>
相同的模式可以找出反应器依赖项的版本。
从我投入的 10 分钟来看,我没有看到spring-cloud-starter-consul-discovery:3.0.3
的版本会包含在cloud-dependecies
中。
您仍然可以尝试强制使用特定版本的依赖项。 我们最近在内部的 spring-cloud-kube.netes 中遇到了这样的问题。
不过,这可能有效也可能无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.