SpringBoot——pom文件:parent

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。SpringBoot——pom文件:parent,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

先看一看:

本次我们主要介绍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版本的最合适的版本号,你引用第三方技术的时候就不用自己写版本号了,这个版本号我给你,你只需要写名字就可以了。我们就去看看他是怎么做的:

SpringBoot——pom文件:parent

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

 SpringBoot——pom文件:parent

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

SpringBoot——pom文件:parent

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

SpringBoot——pom文件:parent 

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

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

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

SpringBoot——pom文件:parent 

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

SpringBoot——pom文件:parent 

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

SpringBoot——pom文件:parent 

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

SpringBoot——pom文件:parent 

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

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

SpringBoot——pom文件:parent 我依然不写版本号,看这次他能不能找到:

SpringBoot——pom文件:parent

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

SpringBoot——pom文件:parent 

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153264.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!