在這,您將學(xué)習(xí)了解 Spring Boot Starter Parent, 它是 Spring Boot 提供的父級(jí) Pom 文件,旨在提供自動(dòng)版本依賴管理,幫助我們輕松快速地進(jìn)行?Spring Boot?開發(fā)。
什么是 Spring Boot Starter Parent ?
通過 Spring Boot Starter Parent, 我們可以進(jìn)行簡(jiǎn)單便捷地包依賴管理。在 Spring Boot 每一個(gè)發(fā)行版中,均提供了該版本所兼容的依賴項(xiàng)版本清單。
所以,在開發(fā) Spring Boot 應(yīng)用時(shí),pom.xml
?文件中,我們可以不用指定具體的依賴版本號(hào),因?yàn)?Spring Boot Starter Parent 默認(rèn)會(huì)使用自身支持包版本號(hào)。
Spring Boot Starter Parent 開始
通過?Spring Initializr?或者使用?Idea 創(chuàng)建一個(gè) Spring Boot 項(xiàng)目時(shí),我們可以看到?pom.xml
?文件中包含以下內(nèi)容:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
一旦?pom.xml
?文件中包含了上述配置,Spring Boot 應(yīng)用將默認(rèn)包含如下功能:
-
1.依賴管理功能(Spring Boot 自動(dòng)管理包版本依賴) ;
-
2.相關(guān)默認(rèn)值設(shè)置:
- 2.1?默認(rèn)的 Java 版本號(hào);
- 2.2?資源文件編碼格式;
- 2.3?資源過濾等;
-
3.插件管理;
1.1 了解 Starter Parent 內(nèi)部
追蹤到?spring-boot-starter-parent
?內(nèi)部文件,可以看到存在一個(gè)?spring-boot-dependencies
的父級(jí)?pom
:
文件中定義了應(yīng)用所有的依賴管理清單,還包括插件和其他相關(guān)配置,上面是?pom.xml
?大致的樣子:
<properties>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<resource.delimiter>@</resource.delimiter>
<maven.compiler.source>${java.version}</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
屬性部分定義了一些應(yīng)用程序參數(shù)的默認(rèn)值。如果我們沒有自定義,則默認(rèn)使用這些值。
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<!-- other execution goals -->
<configuration>
<jvmTarget>${java.version}</jvmTarget>
<javaParameters>true</javaParameters>
</configuration>
</plugin>
<!-- 下面是其他相關(guān)插件-->
</plugins>
<pluginManagement>
1.2 Starter Parent 是如何定義版本號(hào)的?
我們繼續(xù)深入?pom.xml
?文件配置:
windows 平臺(tái)按住?ctrl
, 點(diǎn)擊?2.1.2.RELEASE
, 可以看到如下配置內(nèi)容:
<properties>
<activemq.version>5.15.7</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.67</appengine-sdk.version>
<artemis.version>2.6.3</artemis.version>
<aspectj.version>1.9.2</aspectj.version>
<assertj.version>3.11.1</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<bitronix.version>2.1.4</bitronix.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<byte-buddy.version>1.9.3</byte-buddy.version>
<caffeine.version>2.6.2</caffeine.version>
<cassandra-driver.version>3.6.0</cassandra-driver.version>
<!-- 其他版本號(hào)配置 ... -->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
<!-- 其他依賴 ... -->
</dependencies>
</dependencyManagement>
自定義某個(gè)依賴的版本號(hào)
Spring Boot Starter Parent 為我們?yōu)槲覀兲幚砹税姹疽蕾嚨膯栴},所以強(qiáng)烈建議您在項(xiàng)目的?pom.xml
?文件繼承它,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<!-- 從 Spring Boot 中引入版本依賴 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
將?scope
?定義為了?import
, 配置完成后,我們就可以自定義某個(gè)依賴的版本了:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<!-- 重寫版本號(hào) -->
<version>2.1.1.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
之后,我們可以自定義某個(gè)依賴的版本號(hào),以?jpa
?為例,我們重寫了默認(rèn)的版本號(hào),重新定義為我們想要的?2.1.1.RELEASE
?版本。文章來源:http://www.zghlxwxcb.cn/news/detail-711887.html
最后
最后,歡迎大家留言,咱們一起討論技術(shù)問題,也可以關(guān)注我,回復(fù)B01或b01,免費(fèi)領(lǐng)取java面試題!文章來源地址http://www.zghlxwxcb.cn/news/detail-711887.html
到了這里,關(guān)于Spring Boot Starter Parent的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!