当前位置: 首页 > article >正文

SpringBoot——pom文件:parent

先看一看:

本次我们主要介绍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.kler.cn/news/18375.html

相关文章:

  • 通过计算系统稳定性比较迭代次数
  • Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的直方图算法增强(C#)
  • uboot下内存操作mw和md命令详解
  • 如何防御流量攻击
  • 写PPT的步骤
  • Shell 脚本传递参数的两种方式:位置传参与指令式传参
  • MySQL---基本操作DDL(SQL特点,数据类型,对数据库的操作,对表的操作)
  • java面试题总结
  • 《ChatGPT Prompt Engineering for Developers》课程中文版系列
  • 学习【gRPC C++简单示例及代码】
  • <微服务架构项目>权限控制案例分享
  • 技术转管理,先来试试管理好项目
  • 基于氢储能的热电联供型微电网优化调度方法(Matlab代码实现)
  • 如何利用ChatGPT进行论文润色-ChatGPT润色文章怎么样
  • 设计模式——适配器模式(类适配器、对象适配器)
  • redis数据过期策略
  • JSP在线教学质量评价系统的设计与实现(源代码+论文)
  • 详解MySQL索引失效
  • MySQL高级(进阶)SQL语句
  • Hashtable 与 HashMap 有什么不同?
  • C++ 类与对象(二)—类成员初始化、静态分配和动态分配、this指针
  • [Python]连接列表,将多个列表连接起来
  • d答复引用等问题
  • 【蓝桥杯选拔赛真题56】Scratch画笔涂色 少儿编程scratch图形化编程 蓝桥杯选拔赛真题讲解
  • OJ练习第101题——柱状图中最大的矩形
  • 数据结构之栈的详解
  • ASP.NET Core Web API用户身份验证
  • 鸿蒙Hi3861学习七-Huawei LiteOS-M(信号量)
  • Linux网络架构: XDP, iptables/netfilter和iproute2/tc/ip/Qdiscs
  • windows环境安装运行kafka