Springboot项目中的spring-boot-starter-parent,spring-boot-dependencies依赖关系

文章目录

  • 一、查看springboot版本
      • 1、项目创建初
      • 2、pom文件
  • 二、spring-boot-starter-parent,spring-boot-dependencies
      • 1、spring-boot-starter-parent的pom文件
      • 2、spring-boot-dependencies的pom文件
  • 三、使用springboot两种方式区别:

Springboot项目中spring-boot-dependencies或spring-boot-parent管理了那些常用的依赖,所以有些不需要加version版本标签了,可以统一项目的依赖,避免后续的版本冲突。而spring-boot-dependencies是spring-boot-starter-parent的父级项目

一、查看springboot版本

1、项目创建初

我们通常使用 Spring Initializer 快速创建SpringBoot项目。系统自动默认选择最新的版本,也可以点击图中Default:https://start.spring.io选择版本(本文中选择2.4.3版本):

如何搭建一个最简单的springboot项目,此处不过多描述。可参考https://blog.csdn.net/baidu_39298625/article/details/98102453

2、pom文件

以一个简单的springboot工程来查看其pom文件,可以看出父级项目是spring-boot-starter-parent,父级项目可以方便把几个module项目合在一起,减少差异。

【此处pom文件也可以看到我们的版本是2.4.3,行文中均以此版本为例描述】

二、spring-boot-starter-parent,spring-boot-dependencies

1、spring-boot-starter-parent的pom文件

在上面我们已经看到我们springboot的版本,在父级项目的spring-boot-starter-parent定义的,接下来在本地仓库C:\Users\PC.m2\repository\org\springframework\boot\spring-boot-starter-parent\2.4.3找到spring-boot-starter-parent-2.4.3.pom文件,打开发现,spring-boot-starter-parent的父级项目是spring-boot-dependencies
在这里插入图片描述
在这里插入图片描述

2、spring-boot-dependencies的pom文件

接下来查看本地仓库C:\Users\PC.m2\repository\org\springframework\boot\spring-boot-dependencies\2.4.3spring-boot-dependencies-2.4.3.pom

在这里插入图片描述
在这里我们看到管理了几百个依赖版本,所以在加入新的依赖的时候,有时发现新加入的依赖不需要标签标出使用的版本就可以,因为spring-boot-dependencies或spring-boot-parent管理了那些常用的依赖,在dependencies里的部分配置可以不用填写version信息,这些version信息会从spring-boot-dependencies里得到继承。

小结eg:通过spring-boot-dependencies-2.4.3.pom文件查看内置的tomcat版本 9.0.43

spring-boot-dependencies-2.4.3.pom文件内容摘要:


<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0modelVersion><groupId>org.springframework.bootgroupId><artifactId>spring-boot-dependenciesartifactId><version>2.4.3version><packaging>pompackaging><name>spring-boot-dependenciesname><description>Spring Boot Dependenciesdescription><url>https://spring.io/projects/spring-booturl><licenses><license><name>Apache License, Version 2.0name><url>https://www.apache.org/licenses/LICENSE-2.0url>license>licenses><developers><developer><name>Pivotalname><email>info@pivotal.ioemail><organization>Pivotal Software, Inc.organization><organizationUrl>https://www.spring.ioorganizationUrl>developer>developers><scm><url>https://github.com/spring-projects/spring-booturl>scm><properties><activemq.version>5.16.1activemq.version><antlr2.version>2.7.7antlr2.version><appengine-sdk.version>1.9.86appengine-sdk.version><artemis.version>2.15.0artemis.version><aspectj.version>1.9.6aspectj.version><assertj.version>3.18.1assertj.version><atomikos.version>4.0.6atomikos.version><awaitility.version>4.0.3awaitility.version><bitronix.version>2.1.4bitronix.version><build-helper-maven-plugin.version>3.2.0build-helper-maven-plugin.version><byte-buddy.version>1.10.20byte-buddy.version><caffeine.version>2.8.8caffeine.version><cassandra-driver.version>4.9.0cassandra-driver.version><classmate.version>1.5.1classmate.version><commons-codec.version>1.15commons-codec.version><commons-dbcp2.version>2.8.0commons-dbcp2.version><commons-lang3.version>3.11commons-lang3.version><commons-pool.version>1.6commons-pool.version><commons-pool2.version>2.9.0commons-pool2.version><couchbase-client.version>3.0.10couchbase-client.version><db2-jdbc.version>11.5.5.0db2-jdbc.version><dependency-management-plugin.version>1.0.11.RELEASEdependency-management-plugin.version><derby.version>10.14.2.0derby.version><dropwizard-metrics.version>4.1.17dropwizard-metrics.version><ehcache.version>2.10.6ehcache.version><ehcache3.version>3.9.0ehcache3.version><elasticsearch.version>7.9.3elasticsearch.version><embedded-mongo.version>2.2.0embedded-mongo.version><flyway.version>7.1.1flyway.version><freemarker.version>2.3.31freemarker.version><git-commit-id-plugin.version>3.0.1git-commit-id-plugin.version><glassfish-el.version>3.0.3glassfish-el.version><glassfish-jaxb.version>2.3.3glassfish-jaxb.version><groovy.version>2.5.14groovy.version><gson.version>2.8.6gson.version><h2.version>1.4.200h2.version><hamcrest.version>2.2hamcrest.version><hazelcast.version>4.0.3hazelcast.version><hazelcast-hibernate5.version>2.1.1hazelcast-hibernate5.version><hibernate.version>5.4.28.Finalhibernate.version><hibernate-validator.version>6.1.7.Finalhibernate-validator.version><hikaricp.version>3.4.5hikaricp.version><hsqldb.version>2.5.1hsqldb.version><htmlunit.version>2.44.0htmlunit.version><httpasyncclient.version>4.1.4httpasyncclient.version><httpclient.version>4.5.13httpclient.version><httpcore.version>4.4.14httpcore.version><infinispan.version>11.0.9.Finalinfinispan.version><influxdb-java.version>2.20influxdb-java.version><jackson-bom.version>2.11.4jackson-bom.version><jakarta-activation.version>1.2.2jakarta-activation.version><jakarta-annotation.version>1.3.5jakarta-annotation.version><jakarta-jms.version>2.0.3jakarta-jms.version><jakarta-json.version>1.1.6jakarta-json.version><jakarta-json-bind.version>1.0.2jakarta-json-bind.version><jakarta-mail.version>1.6.5jakarta-mail.version><jakarta-persistence.version>2.2.3jakarta-persistence.version><jakarta-servlet.version>4.0.4jakarta-servlet.version><jakarta-servlet-jsp-jstl.version>1.2.7jakarta-servlet-jsp-jstl.version><jakarta-transaction.version>1.3.3jakarta-transaction.version><jakarta-validation.version>2.0.2jakarta-validation.version><jakarta-websocket.version>1.1.2jakarta-websocket.version><jakarta-ws-rs.version>2.1.6jakarta-ws-rs.version><jakarta-xml-bind.version>2.3.3jakarta-xml-bind.version><jakarta-xml-soap.version>1.4.2jakarta-xml-soap.version><jakarta-xml-ws.version>2.3.3jakarta-xml-ws.version><janino.version>3.1.3janino.version><javax-activation.version>1.2.0javax-activation.version><javax-annotation.version>1.3.2javax-annotation.version><javax-cache.version>1.1.1javax-cache.version><javax-jaxb.version>2.3.1javax-jaxb.version><javax-jaxws.version>2.3.1javax-jaxws.version><javax-jms.version>2.0.1javax-jms.version><javax-json.version>1.1.4javax-json.version><javax-jsonb.version>1.0javax-jsonb.version><javax-mail.version>1.6.2javax-mail.version><javax-money.version>1.1javax-money.version><javax-persistence.version>2.2javax-persistence.version><javax-transaction.version>1.3javax-transaction.version><javax-validation.version>2.0.1.Finaljavax-validation.version><javax-websocket.version>1.1javax-websocket.version><jaxen.version>1.2.0jaxen.version><jaybird.version>3.0.10jaybird.version><jboss-logging.version>3.4.1.Finaljboss-logging.version><jboss-transaction-spi.version>7.6.0.Finaljboss-transaction-spi.version><jdom2.version>2.0.6jdom2.version><jedis.version>3.3.0jedis.version><jersey.version>2.32jersey.version><jetty-el.version>8.5.54jetty-el.version><jetty-jsp.version>2.2.0.v201112011158jetty-jsp.version><jetty-reactive-httpclient.version>1.1.5jetty-reactive-httpclient.version><jetty.version>9.4.36.v20210114jetty.version><jmustache.version>1.15jmustache.version><johnzon.version>1.2.10johnzon.version><jolokia.version>1.6.2jolokia.version><jooq.version>3.14.7jooq.version><json-path.version>2.4.0json-path.version><json-smart.version>2.3json-smart.version><jsonassert.version>1.5.0jsonassert.version><jstl.version>1.2jstl.version><jtds.version>1.3.1jtds.version><junit.version>4.13.2junit.version><junit-jupiter.version>5.7.1junit-jupiter.version><kafka.version>2.6.0kafka.version><kotlin.version>1.4.30kotlin.version><kotlin-coroutines.version>1.4.2kotlin-coroutines.version><lettuce.version>6.0.2.RELEASElettuce.version><liquibase.version>3.10.3liquibase.version><log4j2.version>2.13.3log4j2.version><logback.version>1.2.3logback.version><lombok.version>1.18.18lombok.version><mariadb.version>2.7.2mariadb.version><maven-antrun-plugin.version>1.8maven-antrun-plugin.version><maven-assembly-plugin.version>3.3.0maven-assembly-plugin.version><maven-clean-plugin.version>3.1.0maven-clean-plugin.version><maven-compiler-plugin.version>3.8.1maven-compiler-plugin.version><maven-dependency-plugin.version>3.1.2maven-dependency-plugin.version><maven-deploy-plugin.version>2.8.2maven-deploy-plugin.version><maven-enforcer-plugin.version>3.0.0-M3maven-enforcer-plugin.version><maven-failsafe-plugin.version>2.22.2maven-failsafe-plugin.version><maven-help-plugin.version>3.2.0maven-help-plugin.version><maven-install-plugin.version>2.5.2maven-install-plugin.version><maven-invoker-plugin.version>3.2.1maven-invoker-plugin.version><maven-jar-plugin.version>3.2.0maven-jar-plugin.version><maven-javadoc-plugin.version>3.2.0maven-javadoc-plugin.version><maven-resources-plugin.version>3.2.0maven-resources-plugin.version><maven-shade-plugin.version>3.2.4maven-shade-plugin.version><maven-source-plugin.version>3.2.1maven-source-plugin.version><maven-surefire-plugin.version>2.22.2maven-surefire-plugin.version><maven-war-plugin.version>3.3.1maven-war-plugin.version><micrometer.version>1.6.4micrometer.version><mimepull.version>1.9.13mimepull.version><mockito.version>3.6.28mockito.version><mongodb.version>4.1.1mongodb.version><mssql-jdbc.version>8.4.1.jre8mssql-jdbc.version><mysql.version>8.0.23mysql.version><nekohtml.version>1.9.22nekohtml.version><neo4j-java-driver.version>4.1.1neo4j-java-driver.version><netty.version>4.1.59.Finalnetty.version><netty-tcnative.version>2.0.36.Finalnetty-tcnative.version><oauth2-oidc-sdk.version>8.36oauth2-oidc-sdk.version><nimbus-jose-jwt.version>8.20.2nimbus-jose-jwt.version><ojdbc.version>19.3.0.0ojdbc.version><okhttp3.version>3.14.9okhttp3.version><oracle-database.version>19.8.0.0oracle-database.version><pooled-jms.version>1.2.1pooled-jms.version><postgresql.version>42.2.18postgresql.version><prometheus-pushgateway.version>0.9.0prometheus-pushgateway.version><quartz.version>2.3.2quartz.version><querydsl.version>4.4.0querydsl.version><r2dbc-bom.version>Arabba-SR8r2dbc-bom.version><rabbit-amqp-client.version>5.10.0rabbit-amqp-client.version><reactive-streams.version>1.0.3reactive-streams.version><reactor-bom.version>2020.0.4reactor-bom.version><rest-assured.version>3.3.0rest-assured.version><rsocket.version>1.1.0rsocket.version><rxjava.version>1.3.8rxjava.version><rxjava-adapter.version>1.2.1rxjava-adapter.version><rxjava2.version>2.2.21rxjava2.version><saaj-impl.version>1.5.2saaj-impl.version><selenium.version>3.141.59selenium.version><selenium-htmlunit.version>2.44.0selenium-htmlunit.version><sendgrid.version>4.6.8sendgrid.version><servlet-api.version>4.0.1servlet-api.version><slf4j.version>1.7.30slf4j.version><snakeyaml.version>1.27snakeyaml.version><solr.version>8.5.2solr.version><spring-amqp.version>2.3.5spring-amqp.version><spring-batch.version>4.3.1spring-batch.version><spring-data-bom.version>2020.0.5spring-data-bom.version><spring-framework.version>5.3.4spring-framework.version><spring-hateoas.version>1.2.4spring-hateoas.version><spring-integration.version>5.4.4spring-integration.version><spring-kafka.version>2.6.6spring-kafka.version><spring-ldap.version>2.3.3.RELEASEspring-ldap.version><spring-restdocs.version>2.0.5.RELEASEspring-restdocs.version><spring-retry.version>1.3.1spring-retry.version><spring-security.version>5.4.5spring-security.version><spring-session-bom.version>2020.0.3spring-session-bom.version><spring-ws.version>3.0.10.RELEASEspring-ws.version><sqlite-jdbc.version>3.32.3.3sqlite-jdbc.version><sun-mail.version>1.6.5sun-mail.version><thymeleaf.version>3.0.12.RELEASEthymeleaf.version><thymeleaf-extras-data-attribute.version>2.0.1thymeleaf-extras-data-attribute.version><thymeleaf-extras-java8time.version>3.0.4.RELEASEthymeleaf-extras-java8time.version><thymeleaf-extras-springsecurity.version>3.0.4.RELEASEthymeleaf-extras-springsecurity.version><thymeleaf-layout-dialect.version>2.5.2thymeleaf-layout-dialect.version><tomcat.version>9.0.43tomcat.version><unboundid-ldapsdk.version>4.0.14unboundid-ldapsdk.version><undertow.version>2.2.4.Finalundertow.version><versions-maven-plugin.version>2.8.1versions-maven-plugin.version><webjars-hal-browser.version>3325375webjars-hal-browser.version><webjars-locator-core.version>0.46webjars-locator-core.version><wsdl4j.version>1.6.3wsdl4j.version><xml-maven-plugin.version>1.0.2xml-maven-plugin.version><xmlunit2.version>2.7.0xmlunit2.version>properties><...此处还有好多参看源文件....>build>
project>

三、使用springboot两种方式区别:

我们知道pring-boot-dependencies是spring-boot-starter-parent的父级项目,而这两个都是使用springboot的方式,区别是:

  • spring-boot-starter-parent。由于maven单继承,再想继承别的module就不可能了,而实际开发中,用户很可能需要继承自己公司的标准parent配置,这时就需要下边第二种。
  • spring-boot-dependencies。在dependencyManagement中使用scope=import的方式来保持依赖项管理。这种方式解决了多继承,同样也让父类中的dependency是分类,不会那么乱。

接下来我们特别的描述下第二种使用父级别的pring-boot-dependencies配置,eg:

<dependencyManagement><dependencies><dependency><!--不使用parent方式进行依赖,需要scope和type设置--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.1.6.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

springboot官网中相关描述如下可参考:
https://docs.spring.io/spring-boot/docs/2.0.2.RELEASE/reference/htmlsingle/#boot-documentation
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部