【发布时间】:2021-10-26 16:27:25
【问题描述】:
我正在尝试更新已经拉入厨房水槽的应用程序(或者可能是一些,它们在臀部加入)并且我正在整理版本冲突。
我想更新到 Spring Boot 2.5+ 并使用 Spring Cloud Consul - 我正在尝试加入:
- spring-cloud-starter-consul-discovery:3.0.3
- spring-boot:2.5.4
对于奖励积分,在 spring-cloud-starter-consul-discovery 中,我看到它引入了 reactor-core:3.4.6 并同时引入了 reactor-extra:3.4.3(引入了 reactor-核心: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
虽然这是一个需要解决的小问题,但它不应该是我的问题。是我遗漏了什么,还是事情就是这样,我不应该期待更多?
【问题讨论】:
-
你应该通过 boms 来管理这个,而不是明确的。 here 是云和启动版本协同工作的矩阵。
-
spring cloud 2020.0.x同时兼容boot 2.4.x和2.5.x,应该由bom管理。你能显示你的构建依赖文件吗?
-
我可以,但我的问题更像是一个哲学问题。 BOM 将类似于使用排除项。
-
甚至没有关闭。您将获得两个 bom,并且从不明确管理任何版本。至少,恕我直言。我们这样做。我们为每个人提供了一个共同的 bom,我们在其中导入了云和启动 bom。
-
那么,在 BOM 中,我需要为 reactor-extra / reactor-core 声明一个版本吗?我还能如何让它们合并?
标签: java spring-boot maven spring-cloud