Spring Boot Starter Parent

这篇具有很好参考价值的文章主要介绍了Spring Boot Starter Parent。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot Starter Parent

在这,您将学习了解 Spring Boot Starter Parent, 它是 Spring Boot 提供的父级 Pom 文件,旨在提供自动版本依赖管理,帮助我们轻松快速地进行 Spring Boot 开发。

什么是 Spring Boot Starter Parent ?

通过 Spring Boot Starter Parent, 我们可以进行简单便捷地包依赖管理。在 Spring Boot 每一个发行版中,均提供了该版本所兼容的依赖项版本清单

所以,在开发 Spring Boot 应用时,pom.xml 文件中,我们可以不用指定具体的依赖版本号,因为 Spring Boot Starter Parent 默认会使用自身支持包版本号。

Spring Boot Starter Parent 开始

通过 Spring Initializr 或者使用 Idea 创建一个 Spring Boot 项目时,我们可以看到 pom.xml 文件中包含以下内容:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>2.1.2.RELEASE</version> 
</parent>

一旦 pom.xml 文件中包含了上述配置,Spring Boot 应用将默认包含如下功能:

  • 1.依赖管理功能(Spring Boot 自动管理包版本依赖)

  • 2.相关默认值设置

    • 2.1 默认的 Java 版本号
    • 2.2 资源文件编码格式
    • 2.3 资源过滤等
  • 3.插件管理

1.1 了解 Starter Parent 内部

追踪到 spring-boot-starter-parent 内部文件,可以看到存在一个 spring-boot-dependencies的父级 pom

image.png

文件中定义了应用所有的依赖管理清单,还包括插件和其他相关配置,上面是 pom.xml 大致的样子:

<properties> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
    <resource.delimiter>@</resource.delimiter> 
    <maven.compiler.source>${java.version}</maven.compiler.source> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.target>${java.version}</maven.compiler.target> 
</properties>

属性部分定义了一些应用程序参数的默认值。如果我们没有自定义,则默认使用这些值。

<pluginManagement> 
    <plugins> 
        <plugin> 
        <groupId>org.jetbrains.kotlin</groupId> 
        <artifactId>kotlin-maven-plugin</artifactId>
        <version>${kotlin.version}</version> 
        <executions> 
        <execution>
            <id>compile</id> 
            <phase>compile</phase> 
                <goals> 
                    <goal>compile</goal> 
                </goals> 
        </execution> 
        <!-- other execution goals --> 
        <configuration> 
            <jvmTarget>${java.version}</jvmTarget> 
            <javaParameters>true</javaParameters> 
        </configuration> 
        </plugin> 
    <!-- 下面是其他相关插件--> 
    </plugins> 
<pluginManagement>

1.2 Starter Parent 是如何定义版本号的?

我们继续深入 pom.xml 文件配置:

image.png

windows 平台按住 ctrl, 点击 2.1.2.RELEASE, 可以看到如下配置内容:

<properties> 
    <activemq.version>5.15.7</activemq.version> 
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.67</appengine-sdk.version> 
    <artemis.version>2.6.3</artemis.version> 
    <aspectj.version>1.9.2</aspectj.version> 
    <assertj.version>3.11.1</assertj.version> 
    <atomikos.version>4.0.6</atomikos.version>
    <bitronix.version>2.1.4</bitronix.version>
    <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version> 
    <byte-buddy.version>1.9.3</byte-buddy.version> 
    <caffeine.version>2.6.2</caffeine.version> 
    <cassandra-driver.version>3.6.0</cassandra-driver.version>
<!-- 其他版本号配置 ... --> 
</properties> 
<dependencyManagement> 
    <dependencies> 
        <dependency> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId> 
            <version>2.1.2.RELEASE</version> 
        </dependency> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-actuator</artifactId> 
            <version>2.1.2.RELEASE</version>
        </dependency> 
    <!-- 其他依赖 ... --> 
    </dependencies>
</dependencyManagement>

自定义某个依赖的版本号

Spring Boot Starter Parent 为我们为我们处理了版本依赖的问题,所以强烈建议您在项目的 pom.xml 文件继承它,如下所示:

<dependencyManagement> 
    <dependencies> 
        <dependency> 
            <!-- 从 Spring Boot 中引入版本依赖 --> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-dependencies</artifactId> 
            <version>2.1.2.RELEASE</version> 
            <type>pom</type> 
            <scope>import</scope> 
        </dependency> 
    </dependencies>
</dependencyManagement>

将 scope 定义为了 import, 配置完成后,我们就可以自定义某个依赖的版本了:

<dependencyManagement> 
    <dependencies> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <!-- 重写版本号 --> 
            <version>2.1.1.RELEASE</version> 
        </dependency> 
    </dependencies>
</dependencyManagement>

之后,我们可以自定义某个依赖的版本号,以 jpa 为例,我们重写了默认的版本号,重新定义为我们想要的 2.1.1.RELEASE 版本。

最后

最后,欢迎大家留言,咱们一起讨论技术问题,也可以关注我,回复B01b01,免费领取java面试题!文章来源地址https://www.toymoban.com/news/detail-711887.html

到了这里,关于Spring Boot Starter Parent的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA 找不到项目 ‘org.springframework.boot:spring-boot-starter-parent:3.1.2‘

    找不到项目 ‘org.springframework.boot:spring-boot-starter-parent:2.6.7’ 这个问题主要是因为ide的缓存导致的,我们直接清理缓存并重启ide 重启之后ide会对pom文件进行编排索引完成之后问题就没有了

    2024年02月12日
    浏览(33)
  • Could not find artifact org.springframework.boot:spring-boot-starter-parent:jar

    在创建Springboot工程时,引入了org.springframework.boot的spring-boot-starter-parent和spring-boot-starter-web,但是提示找不到spring-boot-starter-parent 的jar包,而spring-boot-starter-web的jar包可以找到,配置的是阿里云的maven仓库。 报错内容: Could not find artifact org.springframework.boot:spring-boot-starter-pare

    2024年02月12日
    浏览(34)
  • 报错 Project ‘org.springframework.boot:spring-boot-starter-parent’ not found 的解决办法

    先上图:  引入spring-boot-starter-parent 依赖的时候总是会有报错。 网上大多数办法都说是maven的问题,但是maven的配置明明没有问题但还是会报错。 那么有可能是缓存的原因,可以清理一下idea的缓存。 如下:  点击图中高亮的选项  选择图中的Inavalidate and Restart  问题解决。

    2024年02月13日
    浏览(97)
  • 报错: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom

    在maven项目中若要导入SpringBoot, 或是创建SpringBoot项目时,父级依赖的spring-boot-starter-parent通常都会出现 Project ‘org.springframework.boot:spring-boot-starter-parent:x.x.x’ not found 或 Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom 的错误提示。 问题出现场景 我新建了一个

    2024年02月07日
    浏览(37)
  • idea创建spring项目后报错‘org.springframework.boot:spring-boot-starter-parent:2.7.3‘ not found

    创建新项目后spring-boot-starter-parent找不到,原因在于新建项目选择了spring-boot-starter-parent新版本,而缓存中还是使用的老版本导致。 idea默认缓存maven本地库中的依赖库,在新建项目时会直接到缓存中寻找依赖库。如果相同库只是修改版本会导致idea无法从缓存中依赖到相应的库

    2024年02月07日
    浏览(45)
  • Failure to find org.springframework.boot:spring-boot-starter-parent:pom:3.0.1-SNAPSHOT

    使用spring initializr创建maven程序, 在intellij idea中打开时报错: Failure to find org.springframework.boot:spring-boot-starter-parent:pom:3.0.1-SNAPSHOT in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus-aliyun has elapsed or updates are

    2024年02月16日
    浏览(63)
  • 已解决Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.4.RELEASE

    已解决Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.4.RELEASE Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.4.RELEASE 出现找不到Spring Boot依赖的错误可能有多种原因 下滑查看解决方法 以下是一些常见的解决方法: 清理本地Maven仓库:有时候

    2024年02月05日
    浏览(29)
  • springboot web创建失败,解决Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom

    jdk8不支持3.0以上的springboot版本,如果你在创建项目的时候用的是jdk8,那么我建议你在创建好项目之后自行再pom文件里降级,我刚开始接触springboot时,用的是jdk11,导入的springboot版本是2.7.1,然后弄了差不多半天都找不到原因,然后我就扩大了阿里云的搜索地址,自行在pom文

    2024年02月04日
    浏览(35)
  • 解决Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.6.2 in alimaven

    在部署SpringBoot项目时遇到pom所有版本号爆红,而报错只有标题中的那句话,尝试了多种方法即便不再报错但仍爆红。在查阅和尝试了多种方法后,我决定删除之前的maven镜像配置尝试一下。 方法: 复制一下配置代码,至maven文件下的conf,找到settings.xml,选择文本方式打开文

    2024年04月17日
    浏览(32)
  • Spring-Boot-Starter 学习笔记(1)

    Spring Boot 提供了两个注解: @Configuration :Spring 提供的配置类注解,作用在类上,代表整个类是个 Spring 配置类,对照传统的 Spring XML 配置文件。 @Bean :作用于方法上,代表此方法的返回值(对象)将会被 Spring 容器所管理,从而完成 Bean 的自动注册。 这两个组合起来搭配可

    2024年02月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包