Spring Boot (二):关于Spring Boot的pom 配置。spring-boot-starter-parent.pom

关于依赖

简介

Spring Boot 自带了一个它能够支持的依赖表,在用的时候不需要提供这些依赖的版本信息,Spring Boot会帮你管理好,更新Spring Boot的时候,依赖也会跟着更新,从而保持一致。
这个依赖list包含了Spring Boot能够包含的所有module模块,每一个发行版Spring Boot都对应着一个基础版本的Spring框架,不建议去定义版本号。

spring-boot-starter-parent.pom

文档说这个parent.pom文件里面包含了

  • JAVA 1.8默认编译level
  • UTF-8的编码
  • 一个继承自spring-boot-dependencies的依赖管理部分,来管理各种依赖,这些依赖可以在你自己的pom文件里面省略标签,不用写版本号了。
  • An execution of the repackage goal with a repackage execution id.
  • Sensible resource filtering.
  • Sensible plugin configuration
  • Sensible resource filtering for application.properties and application.yml including profile-specific files (for example, application-dev.properties and application-dev.yml)
  • 也就是说各种文件会帮你打包好。让我们一探parent 配置文件。
  1. control + 左键就可以进入。
    在这里插入图片描述

  2. 首先最上面有一个parent父配置文件,用的是相对路径。

    
        org.springframework.boot
        spring-boot-dependencies
        2.1.0.RELEASE
        ../../spring-boot-dependencies
    
    
  3. 接下来是一些定义的java版本号,编码

看完了就验证了文档所说的那个样子一共是两个pom,一个负责文件的打包,插件,版本号等,一个负责管理各种各样的依赖,(最下面也有一些插件)分工明确。

覆盖并使用使用自己的依赖版本

1.在使用parent的情况下:
在使用spring-boot-starter-parent.pom的时候需要指明版本号,当使用其它starter的时候可以省略版本号。你可以通过覆盖properties标签的property标签来达到修改依赖版本号的目的,但是!请看下面:在依赖pom里面确实定义了很多version来供下面使用,覆盖的确可以更改。往下翻就知道Spring Boot大家族的版本号是一致的,不是properties标签中定义的,文档也说不要去修改这些。
properties属性

 
        5.15.7
        2.7.7
        1.9.67
        2.6.3
        1.9.2
        3.11.1
        4.0.6
        2.1.4
        3.0.0
        1.9.3
        2.6.2
        3.6.0
        1.4.0
        1.11
        2.5.0
        3.8.1
        1.6
        2.6.0

已经写好的依赖

            
                org.springframework.boot
                spring-boot
                2.1.0.RELEASE
            
            
                org.springframework.boot
                spring-boot-test
                2.1.0.RELEASE
            
            
                org.springframework.boot
                spring-boot-test-autoconfigure
                2.1.0.RELEASE

2.不继承parent如何引入自己的父级依赖并且覆盖相应的版本号?
如果你公司有自己的父级模块,这个时候就不能通过parent来继承这个spring-boot-starter-parent pom了。you can still keep the benefit of the dependency management (but not the plugin management) by using a scope=import dependency。


		
		
			
			org.springframework.boot
			spring-boot-dependencies
			2.1.0.RELEASE
			pom
			import
		
	

如果需要覆盖这样即可:


	
		
		
			org.springframework.data
			spring-data-releasetrain
			Fowler-SR2
			pom
			import
		
		
			org.springframework.boot
			spring-boot-dependencies
			2.1.0.RELEASE
			pom
			import
		
	

关于 import 可以参考这篇:https://blog.csdn.net/mn960mn/article/details/50894022 可以解决maven单继承的问题。

你可能感兴趣的:(java,java,后端)