目录导航

Spring Boot自动管理依赖关系和配置。每个Spring Boot版本都提供了它所支持的依赖项列表。 依赖关系列表是可与Maven一起使用的物料清单(spring-boot-dependencies)的一部分。 因此,我们无需在配置中指定依赖项的版本。 Spring Boot自行管理,当更新Spring Boot版本时,Spring Boot将以一致的方式自动升级所有依赖项。

1.依赖管理的优点

  • 通过在一处指定Spring Boot版本,它提供了依赖性信息的集中化。 当从一个版本切换到另一个版本时,它会有所帮助。
  • 它避免了不同版本的Spring Boot库的不匹配。
  • 只需要写一个库名称并指定版本,在多模块项目中很有用。

注意:如果需要,Spring Boot还允许覆盖依赖项版本。

2.Maven依赖管理系统

Maven项目从spring-boot-starter-parent继承了以下功能:

  • 默认的Java编译器版本;
  • UTF-8源编码;
  • 它从spring-boot-dependency-pom继承了Dependency Section。 它管理常见依赖项的版本。 它忽略该依赖项的<version>标记。
  • 依赖关系,继承自spring-boot-dependencies POM;
  • 智能的资源过滤;
  • 智能的插件配置;

继承父启动
在配置项目时,以下spring-boot-starter-parent会自动继承。

<parent>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>2.2.2.BUILD-SNAPSHOT</version>      <!-- lookup parent from repository -->  
    <relativePath/>   
</parent>

注意:在以上依赖性中仅指定了Spring Boot版本。 如果要添加其他启动器,只需删除<version>标记。 同样也可以通过覆盖项目中的属性来覆盖个人依赖性。

例如,如果要添加与已经注入的相同工件的另一个依赖关系,那么将该依赖关系再次注入<properties>标记内以覆盖先前的依赖关系。

更改Java版本

还可以使用<java.version>标记来更改Java版本。

<properties>    
<java.version>1.8</java.version>    
</properties>

添加Spring Boot Maven插件

还可以在pom.xml文件中添加Maven插件,它将项目包装到可执行的jar文件中。

<build>    
<plugins>    
<plugin>    
<groupId>org.springframework.boot</groupId>    
<artifactId>spring-boot-maven-plugin</artifactId>    
</plugin>    
</plugins>    
</build>

没有父POM的Spring Boot

如果不想使用spring-boot starter-parent依赖关系,但仍然想利用依赖关系管理的优势,则可以使用<scope>标记,如下所示:

注意:它不维护插件管理。

<dependencyManagement>  
<dependencies>  
<dependency><!-- Import dependency management from Spring Boot -->  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>2.2.2.RELEASE</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
</dependencies>  
</dependencyManagement>

上述依赖性不允许覆盖。如果要实现覆盖,需要在spring-boot-dependencies条目之前的项目的<dependencyManagement>标记内添加一个条目。

例如,要升级另一个spring-data-releasetrain,请在pom.xml文件中添加以下依赖项。

<dependencyManagement>  
<dependencies>  
<!--Override Spring Data release train from xntuto r.com -->  
<dependency>  
<groupId>org.springframework.data</groupId>  
<artifactId>spring-data-releasetrain</artifactId>  
<version>Fowler-SR2</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
<dependency>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-dependencies</artifactId>  
<version>2.2.2.RELEASE</version>  
<type>pom</type>  
<scope>import</scope>  
</dependency>  
</dependencies>  
</dependencyManagement>

声明:以上内容为个人学习过程的笔记或总结,不保证完全正确,请谨慎参考使用。部分内容整理自互联网,官方文档等,恕不一一列出,如果有侵犯到您的权益,请联系我们删除。