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。这时候就需要我们手动的去写它的版本号,并且需要自己去注意它的冲突问题。

 

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值