SpringBoot 引入了common模块 导致的依赖包结果版本不一致问题

2023-11-15

分享一下我之前遇到的问题,首先我是使用Idea自带的Spring Initializr

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.18.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qxb.learn</groupId>
    <artifactId>gulidemo-ware</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulidemo-ware</name>
    <description>仓储服务</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.qxb.learn</groupId>
            <artifactId>gulidemo-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>

</project>

后面我写了一个common包用于存放公共类基础包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>gulidemo</artifactId>
        <groupId>com.qxb.learn</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>gulidemo-common</artifactId>
    <description>每一个微服务公共的依赖,bean,工具类等</description>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.12</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>
<!--        注册中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
<!--        配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>


        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

发现在common包正常显示的mysql版本在product下不同
在这里插入图片描述
在这里插入图片描述
实际上是因为在 spring-boot-starter-parent
上已经有了对mysql包的依赖版本设定,所以会导致这个问题。这个是maven相关依赖版本优先级读取问题(个人理解,如有不对欢迎指出)
maven官方文档地址

https://maven.apache.org/ref/3.6.3/maven-model/maven.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方法

<modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.18.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qxb.learn</groupId>
    <artifactId>gulidemo-ware</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulidemo-ware</name>
    <description>仓储服务</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
        <mysql.version>8.0.22</mysql.version>
    </properties>

复制冲突的依赖包版本至properties下。改为你指定的版本就可以。
最后分享一下我平时倒是jar包失败的常用检查步骤
依赖包下载失败:
1.查看远程仓库是否正确
2.清空本地maven仓库
3.maven clean 、maven istall
4.清空idea缓存

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot 引入了common模块 导致的依赖包结果版本不一致问题 的相关文章

随机推荐

  • 网上经常看到的冒泡排序的动图如何制作

    今天博主想要和大家分享如何实现动态图 经常在其他博主的文章中可以看到各式各样的动图 搜索一下 网上冒泡排序的动图怎么制作出来 可以看到 很迷 全是告诉冒泡排序的原理 以及动图解析 并没有告知动图是如何制作的 结合博主目前正在学习的前端技术
  • Linux Ubuntu16.04 安装lmdb问题

    LMDB的全称是Lightning Memory Mapped Database 快如闪电的内存映射数据库 它的文件结构简单 包含一个数据文件和一个锁文件 LMDB文件可以同时由多个进程打开 具有极高的数据存取速度 访问简单 不需要运行单独
  • ubuntu下新建txt文档的快捷方式

    进入模板文件夹 Templates 右键打开终端 输入如下命令 sudo gedit txt文档 txt 点击右上角保存 退出 即可通过右键新建txt模板
  • Spring Cache缓存注解

    目录 Spring Cache缓存注解 Cacheable 键生成器 CachePut CacheEvict Caching CacheConfig Spring Cache缓存注解 本篇文章代码示例在Spring Cache简单实现上的代
  • 单片机蓝桥杯——DS1302

    1 原理 对 DS1302的操作就是对其内部寄存器的操作 DS1302内部共有12个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数据位为 BCD 码形式 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器 及
  • FAT32文件系统学习(1) —— BPB的理解

    FAT 32 文件系统学习 1 本文的目标 本文将通过实际读取一个FAT32格式的U盘来简单了解和学习FAT32文件系统的格式 虽然目前windwos操作系统的主流文件系统格式是NTFS 但是FAT32由于其兼容性原因 还是有一定的学习价值
  • 实验一:linux中Ubuntu安装及shell命令

    实验一 Ubuntu安装及基本shell命令 1 实验目的 1 熟悉虚拟机Ubuntu的安装过程 2 熟悉shell常用命令 3 习惯自己解决Linux环境中的各种问题 4 熟悉Linux系统的特点 包含但不仅限于文件系统 网络配置 终端窗
  • Spark广播变量与累加器

    在之前的文章中 我介绍了flink广播状态 从而了解了flink广播状态实际上就是将一个流广播到下游所有算子之中 在本文中我将介绍spark中类似的概念 为了方便理解 先放张spark应用程序架构图 1 普通spark变量 实际上 如果我们
  • 拍乐云远程视频银行解决方案,为金融数字化注入“新活力”

    中国银行业协会在今年发布的 中国银行业客服中心与远程银行发展报告 2020 中指出 随着数字化融入经济生活的方方面面 我国银行业正在快速迭代升级 用户对银行的数字化服务也提出了更高的要求 一是从被动接受现有服务转向主动要求个性化服务 二是从
  • c++学习之set/multiset容器

    一 set基本概念 简介 所有元素在插入时都会被自动排序 本质 set multiset属于关联式容器 底层结构是用二叉树实现的 set multiset区别 set不允许有重复的元素 multiset可以有重复的元素 二 set构造和赋值
  • 【python学习】-使用sklearn对数据进行线性回归,并绘制回归线

    使用sklearn对数据进行线性回归 并绘制回归线 基本思想 代码实现 在科研工作中 有时得到一组或者几组数据 为了研究数据之间是否存在线性关系 一般会想到拟合数据 看下数据的线性关系 严格地说 是使用线性模型研究两个或多个变量之间规律的一
  • “元宇宙”,究竟离我们有多远?(下)

    目录 引言 由 Z世代 引入 元宇宙 1 黑客帝国 究竟什么才是真实的世界 1 1 故事背景 1 2 矩阵 Matrix 矩阵计算与AI革命 1 3 D j vu 1 4 红蓝药丸 1 5 绿色代码雨 附源码 1 6 元宇宙 2 专访 时隔
  • css控制页面打印(分页、屏蔽不需要打印的对象)

    样式 注 不需要打印的对象要用上 Noprint 样式 需要换页处理的对象要用上 PageNext 样式 因为最后一页不用加入换页符 所以要控制最后一页不要使用该样式 个人感觉用PAGE BREAK BEFORE属性控制第一页要方便一些
  • Spark集群安装部署

    目录 一 环境准备 二 安装步骤 三 使用Standalone模式 四 使用Yarn模式 一 环境准备 由于Spark仅仅是一种计算机框架 不负责数据的存储和管理 因此 通常都会将Spark和Hadoop进行统一部署 由Hadoop中的HD
  • 完美解决jenkins安装插件失败(修改下载源)

    从jenkins官网上下载的jenkins 在安装的过程中 会有安装插件一环 第一个为默认安装 第二个为手动 选择默认安装之后 会遇到 安装插件失败 或者卡在安装插件这个地方非常久 久到怀疑人生 久到想卸载重装 在这里 我们可以选择 手动安
  • HTML与CSS3网页设计基础

    HTML基础 1 HTML的简介 HTML 称为 超文本标记语言 提供了很多标签 用于标记网页中的各种元素 HTML的语言特点 1 不区分大小写 2 用不同的标签来标记网页中的不同内容 比如超链接 标题 段落 图片等等 3 标签分为 单独出
  • Flutter 遇到的异常 持续更新

    org gradle wrapper GradleWrapperMain 类无法加载 解决方案 如果你用的是androidStudio3 0以上的版本 新建一个android工程的时候在gradle wrapper里面默认会有一个gradl
  • VMware虚拟机安装Windows Server 2016教程

    想必同学们已经开学了 也都进入了军训阶段吧 而很多计算机网络专业的同学们要开始接触到Windows Server了 这也是计算机网络技术专业的专业基础课程 想当年我们实训课学习使用的好像是2008版的 也不晓得现在各个学校会用到哪个版本实操
  • 均方误差(MSE)

    均方误差 Mean Squared Error MSE 在相同测量条件下进行的测量称为 等精度测量 例如在同样的条件下 用同一个游标卡尺测量铜棒的直径若干次 这就是等精度测量 对于 等精度测量来说 还有一种更好的表示误差的方法 就是 标准误
  • SpringBoot 引入了common模块 导致的依赖包结果版本不一致问题

    分享一下我之前遇到的问题 首先我是使用Idea自带的Spring Initializr