4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies

作者:HaC是个程序员
链接:https://www.zhihu.com/question/426662759/answer/1739510301
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

目录

1、Spring Boot Stater

2、spring-boot-starter-parent 的作用是什么?

3、spring-boot-dependencies

 

要理解spring-boot-starter-parent,首先要明白springBoot中的starter是什么。

1、Spring Boot Stater

可以理解为这是一个启动器,这个启动器会自动依赖其他组件,一站式获取你需要的与spring有关的组件。

举个例子:

如果你想使用 Sping 和 JPA 访问数据库,只需要你的项目包含 spring-boot-starter-data-jpaspring-boot-starter-jdbc 依赖项,你就可以完美进行。

如果你想开发一个web应用程序,只需要你的项目包含 spring-boot-starter-web 依赖项就可以了。


   org.springframework.boot
   spring-boot-starter-web

然后就会自动依赖其他组件:

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第1张图片

而不是像spring那样,你需要在pom单独引入spring-core、spring-beans、spring-aop 等等,最最最重要的是,可以省去了版本冲突的问题。还可以通过spring-boot-starter-parent 统一控制版本。

 

2、spring-boot-starter-parent 的作用是什么?

前面说到 ,spring-boot-starter-parent 可以统一控制版本。

还有以下作用:

  • 使用Java编译、打包版本

  1.8
  • 指定编码

 UTF-8
  • 统一版本

一个引用管理的功能,在dependencies里的部分配置可以不用填写version信息,这些version信息会从spring-boot-dependencies里得到继承。

继承默认版本:


   com.alibaba
   fastjson
 
  • 识别过来资源过滤

例如,打包的时候把src/main/resources下所有文件都打包到包中:


  **/*.*

  true

 


小彩蛋:

为什么依赖包可以不写版本号?

可以看一下spring-boot-starter-parent ,我这里是2.4.1版本,它的parent是 spring-boot-dependencies

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第2张图片

 

再根据spring-boot-dependencies 跳过去,发现该版本下的spring-boot-starter-parent 会有很多默认的依赖包的版本:

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第3张图片

现在你就知道 spring-boot-starter-parent 不需要其他依赖包指定版本了吧,这里都有默认的版本,你可以不需要考虑依赖包的版本了,完美解决冲突问题了。

 

3、spring-boot-dependencies

Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上,你不用指定这些依赖项的版本号,因为Spring Boot都为你管理好了。当更新Spring Boot时,会相应的更新依赖。

spring-cloud-dependencies也是一个依赖管理器的pom文件,与spring-boot-starter-parent的作用一样,不同的是spring-cloud-dependencies是对cloud的依赖管理。如:spring-cloud-starter-config、spring-cloud-starter-netflix-eureka-server

1使用spring-boot-starter-parent

1.1.配置继承spring-boot-starter-parent:只需要在这里指定Spring Boot的版本号。如果导入其他的starters,你可以完全省略版本号。

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第4张图片

 

1.2可以通过property覆盖内部的依赖

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第5张图片

 

2不使用parent POM,配置Spring Boot

2.1如果你可能有自己的企业标准parent,或者你可能只是比较喜欢明确声明所有的Maven配置。可以通过使用scope=import利用依赖管理的便利:不过这种方式不能使用property的形式覆盖原始的依赖项

4.pom.xml文件 - spring-boot-starter-parent 与 spring-boot-dependencies_第6张图片

 

2.2要达到同样的效果,需要在dependencyManagement里面的spring-boot-dependencies之前添加依赖的东西

作者:十斗鱼
链接:https://www.jianshu.com/p/0d97b5ec2aa7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(#,maven)