spring-boot-starter-parent 與 spring-boot-dependencies


Spring Boot的每個發布版本都會規划它所支持的依賴項。實際上,你不用指定這些依賴項的版本號,因為Spring Boot都為你管理好了。當更新Spring Boot時,會相應的更新依賴。

Maven管理依賴

Maven用戶可以繼承spring-boot-starter-parent項目,來獲取最佳依賴。這個父項目提供了以下幾個功能:

  • 默認Java 1.6編譯
  • UTF-8編碼格式
  • 依賴管理部分,可讓你對公共依賴省略version標簽。繼承自spring-boot-dependencies POM。
  • 良好的資源過濾
  • 良好的插件配置
  • 對於application.properties和application.yml包括profile-specific文件,良好的資源過濾

最后一點:因為默認配置文件接受Spring風格的占位符(${}),Maven過濾器換成了@...@占位符。(可以通過Maven屬性resource.delimiter替換)

繼承starter parent

配置繼承spring-boot-starter-parent:

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,你可以完全省略版本號。

使用這個配置,你還可以通過property覆蓋內部的依賴。例如,在pom.xml中升級Spring Data release train。

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配置。

如果你不想使用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應該是這樣的:

 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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM