SpringBoot——pom文件:parent

news2024/11/17 11:51:48

先看一看:

本次我们主要介绍SpringBoot的文件,先来看一看里面都有什么内容:

<?xml version="1.0" encoding="UTF-8"?> <!--XML文件的抬头-->
<!--一些约束以及明明空间信息-->
<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>
<!--    Maven的继承,这是一个重点-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
<!--    跟项目有关的信息-->
    <groupId>com.example</groupId>
    <artifactId>SpringBootTest01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBootTest01</name>
    <description>SpringBootTest01</description>
<!--    Java的版本号,如果跟使用的不一样会报错-->
    <properties>
        <java.version>1.8</java.version>
    </properties>
<!--    依赖坐标-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
<!--SpringBoot的打包插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

我就直接复制了pom.xml文件中的内容,其中我们看到第一个关键词叫做parent,继承:

Parent:

如果之前了解过Maven的应该知道这个词代表的意思,表示在这个项目中引用一个已经写好的父项目中的内容。在SpringBoot项目中,它的作用是维护了与Spring Boot有关的依赖包的版本号。是什么意思呢,还记得之前我们在引入以来坐标的时候写过什么吗,一个是分组ID,一个是工件ID,一个是版本号(这三个一起叫做GAV),在之前的时候,我们会遇到过比如我引入了一个Servlet的依赖坐标,但是Tomcat中已经有了一个Servlet的jar包,这两个包就会冲突,这是最常见的Jar包冲突,我们就要去修改调整版本号,让两个jar包版本号一样或者至少能兼容,这是一个非常累人的过程,一个两个还好,但是如果十几个几十个jar包去调整,那就很可怕了。

所以SpringBoot就经过自己的测试,说,我们现在测试了你用的技术对应SpringBoot版本的最合适的版本号,你引用第三方技术的时候就不用自己写版本号了,这个版本号我给你,你只需要写名字就可以了。我们就去看看他是怎么做的:

按住ctrl然后点击红色框里的内容,跳转到另一个pom文件:

 

然后继续点击红色框里的内容:

然后往下滑,全部都是版本号,然后继续滑动:

 

在这里就引用了我们具体的引用版本号的依赖项,当我们使用一项技术的时候,我们实际上引用的就是这里写好的依赖:

比如现在我们引入一个尝试一下:

 lombok是一个用来简化开发的技术,SpringBoot就维护了它的版本我们来看一下是多少:

 

得到了是1.18.26,我们在我们的pom文件中引入一下:

 

先看一下,现在我们是没有这个依赖的:

 

现在我们引入一下,注意我没有写版本号,现在刷新一下Maven:

 

现在这个依赖就被加载进来了,注意版本号,我没有写,但是他还是上去了,是之前我们看的1.18.26,说明我们之前猜想的确实没错,它里面维护了大部分的SpringBoot能用的第三方技术并且有最合适的版本号,当我们使用的时候,可以只写名字,不用写版本号,就防止了版本冲突。这个操作最主要的作用还是为了做依赖的统一化管理。

注意我之前说的,是大部分的依赖,不是全部的依赖,如果有一个依赖没有版本号怎么办,比如现在我要导入druid的依赖,这里面就没有:

 我依然不写版本号,看这次他能不能找到:

报错了,没有找到对应的jar包,版本未知,也就是说他没有维护druid。这时候就需要我们手动的去写它的版本号,并且需要自己去注意它的冲突问题。

 

指定版本号之后就可以正常的导入了。 

 

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

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

相关文章

知识图谱实现全域数据资产智能管理与运营

案例名称 基于知识图谱的全域数据资产智能管理与运营 案例简介 该方案通过数据资产元数据构建引擎、列算子血缘引擎、关系挖掘引擎和数据资产目录挂载引擎的部署&#xff0c;可快速实现金融机构数据资产的业务目录分类以及数据资产标签集合建设。通过可视化引擎管…

Ubuntu配置Samba服务

Ubuntu配置Samba服务 一、安装samba二、配置samba服务器三、win系统配置四、检查你的虚拟机五、注意 一、安装samba 前提&#xff1a;已经换好源&#xff0c;不然下载很慢或者不成功 未换执行以下命令 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo vim/etc…

虹科案例 | 使用PRP协议解决广播行业中实现高可用性和亚微秒同步难题

案例背景 BROADCASTING PUBLIC ENTITY主要为用户提供电视频道和广播频道&#xff0c;为了带来更好的视听体验&#xff0c;该公司必须更新其无线电前端系统的基础设施。前端的主要功能是接收来自广播电台的现场音频并将其编码为压缩格式&#xff0c;例如AAC&#xff0c;然后将多…

unity 完全复刻flappy bird

文章目录 一、 介绍制作bird向右移动的效果基本动画转场渐隐效果dotween 平滑摇头效果柱子控制器碰撞检测下载项目文件 一、 介绍 Flappy Bird是一款由越南开发者Dong Nguyen于2013年发布的2D跳跃游戏。玩家需要控制一只小鸟躲避障碍物&#xff0c;通过不断飞行获得分数。游戏…

如果把ChatGPT和“挖呀挖”的黄老师结合起来,她可以为你做什么事情?

ChatGPT曾经2个月用户过亿的事情已成为过去&#xff0c;虽然我也成为了其中的一份子&#xff0c;感受着他的无所不能&#xff0c;但从中也的确发现了他的一些不能做的事情。而近期爆火的“挖呀挖”的黄老师&#xff0c;几天粉丝疯涨几百万&#xff0c;也的确值得我们思考。 那么…

kafka安装及环境搭建

1. 下载 下载地址&#xff1a;Apache Kafka 我这里下载的是 3.2.1 版本。 2. 上传并解压 上传到 linux 下的 /home/software/ 目录下&#xff0c;然后解压 kafka_2.13-3.2.1.tgz 包到/usr/local/ cd /home/software tar -zxvf kafka_2.13-3.2.1.tgz -C /usr/local # -C 选…

odoo的一些基础概念

概述 三层体系结构&#xff0c;表示层是HTML5、JavaScript和CSS的组合&#xff0c;逻辑层专门用Python编写&#xff0c;而数据层只支持PostgreSQL作为RDBMS。 服务器和客户端扩展都打包为模块&#xff0c;可选地加载到数据库中。模块是针对单一目的的函数和数据的集合。Odoo中…

拉取远程分支到本地修改后上传

在git之前最好保证网络通畅 如果之前本地有项目且有git控制&#xff0c;直接更新就行了 git pull 1、拉取仓库 git clone https://github.com/用户名/仓库名.git 2、对项目进行修改(略) 3、将所有更改添加到暂存区 git add . git add .命令将所有更改添加到暂存区&#…

OpenPCDet系列 | 3.OpenPCDet点云检测框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

delete方法删除对象数组中元素导致原始数据被修改

记录一个自己在码代码过程中遇到的问题。 要求&#xff1a;删除数组对象中每一组对象中的一个属性。 下面是我原始的写法(当然是错误的)。 const { log } require("console");// 用于测试delete方法&#xff0c;删除对象中的指定元素 const testForDelete () >…

【中创数智人】“周杰伦?数智人周同学!”7×24小时直播不间断,他做到了

迈进Web 3.0&#xff0c;离不开数智人。 品牌代言、公司宣传、产品介绍、直播带货......数智人扮演的角色正在不断增加。无论是替代真人服务、多模态AI助手、还是作为虚拟世界的第二分身&#xff0c;对于数智人而言都已经是触手可及的未来。 5月8日&#xff0c;周杰伦亮相中国…

【JavaEE】线程安全(难点)

目录 前言 1、线程安全的概念 2、线程不安全的原因 3、产生抢占式执行与原子性问题 4、产生多个线程修改同一个变量的问题 5、解决上述三个导致线程不安全的问题 5.1、锁 synchronized关键字 5.1.1、使用synchronized关键字进行加锁 6、由内存可见性引起的线程不安全…

KubeEdge节点分组特性简介

01 边缘应用跨地域部署场景及问题 应用生命周期管理复杂导致运维成本提高 02 边缘节点分组管理 节点分组&#xff1a;将不同地区的边缘节点按照节点组的形式组织 边缘应用&#xff1a;将应用资源整体打包并满足不同节点组之间的差异化部署需求 流量闭环&#xff1a;将服务流量…

Oracle内存管理

文章目录 概念内存管理方式自动内存管理自动共享内存管理手工内存管理 内存管理的转换方式相关内存参数相关数据字典 概念 为满足数据库的需求&#xff0c;通过内存管理来维护 Oracle 实例内存结构的最优大小。Oracle数 据库基于与内存相关的初始化参数设置来管理内存。 内存管…

【LeetCode】654. 最大二叉树

1.问题 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最…

美颜SDK的隐私保护与安全性分析

随着智能手机和移动应用的普及&#xff0c;美颜SDK已经成为了很多应用的标配。美颜SDK的使用可以让用户在拍照或者视频聊天时&#xff0c;实现自拍美颜、滤镜、磨皮、瘦脸等效果。但是&#xff0c;在享受美颜SDK带来的便利的同时&#xff0c;我们也需要关注美颜SDK的隐私保护与…

跟着排序学时间复杂度

带着排序学时间/空间复杂度 排序和时间复杂度 带着排序学时间/空间复杂度冒泡排序选择排序选择排序法2原理&#xff1a; 插入排序希尔排序&#xff08;缩小增量排序&#xff09;堆排序快速排序归并排序不基于比较的排序计数排序 桶排序稳定性 时间复杂度是打开数据结构大门的第…

从0搭建Vue3组件库(十二):引入现代前端测试框架 Vitest

Vitest 是个高性能的前端单元测试框架,它的用法其实和 Jest 差不多,但是它的性能要优于 Jest 不少,还提供了很好的 ESM 支持,同时对于使用 vite 作为构建工具的项目来说有一个好处就是可以公用同一个配置文件vite.config.js。因此本项目将会使用 Vitest 作为测试框架。 安装 …

FS2956A 8V~120V降压5V2A4.2V3A恒压芯片

FS2956A 内置MOS 100V开关降压型DC-DC转换器&#xff0c;FS2956A 8-100V用于电动车 滑板车 液晶仪表 5V-USB充电IC方案2A 概述&#xff1a; FS2956A 是一款支持宽电压输入的开关降压型DC-DC&#xff0c;芯片内置100V/5A功率MOS&#xff0c;最高输入电压90V。FS2956A 具有低待…

初识滴滴交易策略之一:交易市场

初识系列前言 滴滴作为一家共享出行公司&#xff0c;利用信息技术构建了实时的、智能的在线交易市场&#xff0c;在这个庞大运转的市场之中&#xff0c;滴滴秉承着用户价值至上的宗旨&#xff0c;不断通过技术提升来实现更高效的运转效率和更贴心的用户体验。 为了使得大家能够…