Spring Boot的每一個發佈版本都會規劃它所支持的依賴項。實際上,你不用指定這些依賴項的版本號,由於Spring Boot都爲你管理好了。當更新Spring Boot時,會相應的更新依賴。git
Maven管理依賴
Maven用戶能夠繼承spring-boot-starter-parent項目,來獲取最佳依賴。這個父項目提供瞭如下幾個功能:github
- 默認Java 1.6編譯
- UTF-8編碼格式
- 依賴管理部分,可以讓你對公共依賴省略version標籤。繼承自spring-boot-dependencies POM。
- 良好的資源過濾
- 良好的插件配置
- 對於application.properties和application.yml包括profile-specific文件,良好的資源過濾
最後一點:由於默認配置文件接受Spring風格的佔位符(${}),Maven過濾器換成了@...@佔位符。(能夠經過Maven屬性resource.delimiter替換)spring
繼承starter parent
配置繼承spring-boot-starter-parent:app
1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>2.1.3.RELEASE</version> 5 <relativePath/> <!-- lookup parent from repository --> 6 </parent>
只須要在這裏指定Spring Boot的版本號。若是導入其餘的starters,你能夠徹底省略版本號。ide
使用這個配置,你還能夠經過property覆蓋內部的依賴。例如,在pom.xml中升級Spring Data release train。spring-boot
1 <properties> 2 <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version> 3 </properties>
能夠經過spring-boot-dependencies pom,查看支持的屬性列表。編碼
不使用parent POM,配置Spring Boot
可能有人不喜歡繼承spring-boot-starter-parent POM。你可能有本身的企業標準parent,或者你可能只是比較喜歡明確聲明全部的Maven配置。spa
若是你不想使用spring-boot-starter-parent,你依然能夠經過使用scope=import利用依賴管理的便利:插件
1 <dependencyManagement> 2 <dependencies> 3 <dependency> 4 <!-- Import dependency management from Spring Boot --> 5 <groupId>org.springframework.boot</groupId> 6 <artifactId>spring-boot-dependencies</artifactId> 7 <version>2.1.3.RELEASE</version> 8 <type>pom</type> 9 <scope>import</scope> 10 </dependency> 11 </dependencies> 12 </dependencyManagement>
這種方式不能使用property的形式覆蓋原始的依賴項。要達到一樣的效果,須要在dependencyManagement裏面的spring-boot-dependencies以前添加依賴的東西。例如,要升級Spring Data release train,pom.xml應該是這樣的:code
1 <dependencyManagement> 2 <dependencies> 3 <!-- Override Spring Data release train provided by Spring Boot --> 4 <dependency> 5 <groupId>org.springframework.data</groupId> 6 <artifactId>spring-data-releasetrain</artifactId> 7 <version>Fowler-SR2</version> 8 <scope>import</scope> 9 <type>pom</type> 10 </dependency> 11 <dependency> 12 <groupId>org.springframework.boot</groupId> 13 <artifactId>spring-boot-dependencies</artifactId> 14 <version>2.1.3.RELEASE</version> 15 <type>pom</type> 16 <scope>import</scope> 17 </dependency> 18 </dependencies> 19 </dependencyManagement>