Spring Cloud与Spring Cloud Alibaba怎么正确引入依赖版本

news2024/11/27 22:37:16

一.Spring Cloud与Spring Cloud Alibaba与Springboot各版本的依赖关系

我们可以去springcloud alibaba的github仓库中的说明中查找到三个依赖版本的对应关系:

版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub

二.通过BOM对Spring Cloud与Spring Cloud Alibaba各组件的依赖版本进行控制

【1】什么是BOM呢?

BOM(Bill of Materials)是由Maven提供的功能,它通过定义一整套相互兼容的jar包版本集合:Maven BOM!拿来吧你 - 掘金

【2】SpirngCloud官方文档的内容:

【3】SpringCloudAlibaba官方文档的内容:

【4】简单说意思就是说我们在父项目的dependencyManagement引入了上述的依赖后在子项目中书写其各组件的依赖就不用去关心版本的问题。

父项目中:

    <!--统一管理依赖版本-->
    <dependencyManagement>
        <dependencies>
            <!-- springCloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--springCloudAlibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
    </dependencyManagement>

<type>pom</type>:这里指定了依赖项的类型为"pom",表示引入的是一个POM文件,通常用于管理其他依赖项的版本号。

<scope>import</scope>:这里指定了依赖项的作用域为"import",表示这个依赖项主要用于进行版本管理,不会实际参与编译和打包。

这样父子项目中与Spring Cloud与Spring Cloud Alibaba相关的组件依赖就可以省去版本的书写:

例如原先:

<!--        openfeign远程连接-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

现在:

<!--        openfeign远程连接-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

这样就可以统一管理和控制Spring Cloud框架中各个模块的版本号。这样做有助于避免版本冲突,简化项目配置,并提高开发效率,不用再去官网查询版本了。
需要注意的是子项目不要忘了继承父项目,不然没有这种效果。

另外如果想了解,我们也可以点开spring-cloud-dependencies和spring-cloud-alibaba-dependencies去查看各组件的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三江城115m²3室2厅2卫,现代简约不单是居所更是对生活的向往。福州中宅装饰,福州装修

【前言】 简洁有力&#xff0c;静默无声。 以简约精致的方式&#xff0c;展现现代都市生活&#xff1b; 经典不因潮流褪色&#xff0c;不为悦人只为悦己。 项目信息 项目名称 | 三江城 设计地址 | 福建福州 项目面积 | 115㎡ 项目户型 | 3室2厅 设计风格 | 现代简约 全…

BananaPi BPI-M6(Raspberry Pi 5) Android 平板电脑镜像测试温度

我已经在本文中介绍了 全新的Banana Pi BPI-M6&#xff0c;并讨论了其与Raspberry Pi 5的硬件特性比较。 然后我将 Android 平板电脑固件上传到 eMMC&#xff0c;从而使 Banana Pi 实际可用。一开始有点坎坷&#xff0c;但文章中有更多内容。 在另一台电脑上&#xff0c;一切都…

ubuntu 20.04安装 Anaconda教程

在安装Anaconda之前需要先安装ros(防止跟conda冲突&#xff0c;先装ros)。提前安装好cuda 和cudnn。 本博客参考&#xff1a;ubuntu20.04配置ros noetic和cuda&#xff0c;cudnn&#xff0c;anaconda&#xff0c;pytorch深度学习的环境 安装完conda后&#xff0c;输入: pyth…

在 HarmonyOS 上使用 ArkUI 实现计步器应用

介绍 本篇 Codelab 使用 ArkTS 语言实现计步器应用&#xff0c;应用主要包括计步传感器、定位服务和后台任务功能&#xff1a; 1. 通过订阅计步器传感器获取计步器数据&#xff0c;处理后显示。 2. 通过订阅位置服务获取位置数据&#xff0c;处理后显示。 3. 通过服务开…

vue2 mixin的方式 大屏适配(缩放居中的方式)

使用要求&#xff1a;指定容器的 id 为 bigScreenContainer 一、效果图 不管你的屏幕多大都会根据设计稿 1920*1080 进行缩放 图一&#xff1a;缩小的效果 图二&#xff1a;放大的效果 二、使用方式 <template><div id"bigScreenContainer" ref"big…

又在为年会头疼了?看易知微教你用数据可视化搭建工具制作年会抽奖大屏!

距离过年还有2个多月&#xff0c;但是各个公司的行政、组织部门已经接到了年会策划的通知&#xff0c;年会是公司内部重要的社交盛事之一&#xff0c;不仅可以展示公司的实力和成绩&#xff0c;还可以加强员工之间的沟通和团队合作意识。好的年会策划不仅要注重细节&#xff0c…

欧盟铅镉RSL邻苯项目化学物质检测报告办理(RSL Report 资质)REACH 认证

如果您在亚马逊上销售商品&#xff0c;则必须遵守所有适用的欧盟和地方法律法规&#xff0c;以及适用于这些商品和商品信息的亚马逊政策。要在亚马逊上销售某些商品&#xff0c;)您需要向我们提供 REACH 符合性声明或检测报告。 RSL-Phthalate资质 欧盟RSL邻苯项目检测报告 Ph…

一张图系列 - “position_embedding”

关于位置编码&#xff0c;我感觉应该我需要知道点啥&#xff1f; 0、需要知道什么知识&#xff1f; multi head atten 计算 复数的常识 1、embedding 是什么&#xff1f; position embedding常识、概念&#xff0c;没有会怎样&#xff1f; 交换token位置&#xff0c;没有P…

keil程序载入硬件成功,但未按代码执行

可能是因为keil版本的问题 1.在个人电脑上测试&#xff0c;安装keil软件如下。 2.测试stlinkv2仿真器&#xff0c;A202208\A202303\A202210,对1号和2号M3核心板验证。皆下载成功并执行程序。 程序如下: #include "stm32f10x.h" void delay_nms(u16 time); int ma…

【LeetCode刷题-滑动窗口】--487.最大连续1的个数II

487.最大连续1的个数II 方法&#xff1a;滑动窗口 维护一个区间&#xff0c;使得该区间中只包含一个0 class Solution {public int findMaxConsecutiveOnes(int[] nums) {int n nums.length;int left 0,right 0,sum 0;int zero 0; //计算0的个数while(right < n){if(…

mysql之rsync远程同步

&#xff08;一&#xff09;rsync 1、rsync&#xff1a;是一个开源的快速备份工具&#xff0c;可以在不同主机之间同步整个目录 2、在远程同步中&#xff0c;一个是源端&#xff0c;一个是发起端 &#xff08;1&#xff09;源端负责文件的原始位置&#xff0c;发起端和源端的…

《洛谷深入浅出进阶篇》P1995 程序自动分析——并查集,离散化

上链接&#xff1a;P1955 [NOI2015] 程序自动分析 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1955 上题干&#xff1a; 首先给你一个整数t&#xff0c;代表t次操作。 每一次操作包含以下内容&#xff1a; 1.给你一个整数n&#xff0c;让…

node 第十八天 中间件express-session实现会话密钥

express-session 文档 express-session 一个简单的express会话中间件 使用场景 在一个系统中&#xff0c; 需要维持一个临时的与登录态无关的会话密钥 比如登录系统后&#xff0c; 请求某一个接口&#xff0c; 接口的行为与登录态无关&#xff0c; 也就是说任何人对接口的访问…

【java学习—十五】线程的通信(6)

文章目录 1. 线程通信1.1. wait() 方法&#xff1a;1.2. notify()/notifyAll() 方法 1. 线程通信 wait() 与 notify() 和 notifyAll()&#xff1a; ①wait()&#xff1a;令当前线程挂起并放弃 CPU 、同步资源&#xff0c;使别的线程可访问并修改共享资源&#xff0c;而当前线程…

Vue3 生命周期

如下是Vue3的生命周期函数图&#xff1a; 一、Vue2生命周期和Vue3声明周期的区别 1. Vue2 中&#xff0c;只要创建Vue实例对象而不需要挂载就可以实现beforeCreate 和 created 生命周期函数。 Vue3中必须要将Vue实例对象挂载完成&#xff0c;所有的准备工作做完&#xff0c;…

视频号视频怎么保存?教你三种方法

现在随着视频号的兴起&#xff0c;很多用户都喜欢在视频号上分享自己的生活、工作和兴趣爱好。但是很多人都遇到了一个问题&#xff0c;就是视频号上看到了喜欢的视频&#xff0c;想要保存下来&#xff0c;却不知道怎么做。今天我们就来教大家三种方法&#xff0c;让你轻松保存…

Servlet---从创建项目到部署项目的整个流程

文章目录 创建项目引入Servlet依赖创建目录结构编写代码打包程序部署程序验证程序 创建项目 引入Servlet依赖 为什么需要引入依赖资源呢&#xff1f; Servlet不是标准库自带的&#xff0c;需要从外部引入进来才能使用。如何引入&#xff1f; 利用maven&#xff0c;maven的一个…

SystemVerilog学习 (9)——随机化

目录 一、概述 二、随机化 2.1、如何简单地产生一个随机数 2.1.1 利用系统函数产生随机数 2.1.2 urandom() 2.2、什么需要随机化 2.3、随机约束 2.3.1 rand 和 randc 2.3.2 随机约束的使用 2.3.3 约束块 三、总结 一、概述 随着设计变得越来越大,要产生一个完整的激…

【技巧】Windows 11 如何安装日文语言包和日文系统

Windows 11 如何安装日文语言包和日文系统 安装日语语言第一步&#xff1a;打开系统设置第二步&#xff1a;选择【时间和语言】选项第三步&#xff1a;点击【添加语言】按钮第四步&#xff1a;输入语言&#xff0c;并选择第五步&#xff1a;安装输入法/语言包第六步&#xff1a…