本指南將幫助您了解spring boot starter parent如何幫助管理依賴項版本,所有spring boot項目通常使用spring-boot-starter-parent作為pom.xml中的父項:
1
2
3
4
5
|
<parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version> 1.4 . 0 .release</version> </parent> |
parent poms為多個子項目和模塊管理以下內(nèi)容:
- 配置 - java版本和其他屬性
- depedency management - 依賴項的版本
- 默認(rèn)插件配置
內(nèi)部原理
首先 啟動器spring boot starter parent將spring-boot-dependencies定義為父pom。它從spring-boot-dependencies繼承了依賴關(guān)系管理。
1
2
3
4
5
6
|
<parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-dependencies</artifactid> <version> 1.4 . 0 .release</version> <relativepath>../../spring-boot-dependencies</relativepath> </parent> |
默認(rèn)的java版本是1.6。項目可以通過<java.version>1.8</java.version>在項目pom中指定屬性來覆蓋它。還有一些與編碼和源相關(guān)的其他設(shè)置,目標(biāo)版本也在父pom中設(shè)置。
1
2
3
4
5
6
|
<java.version> 1.6 </java.version> <resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with spring ${} placeholders --> <project.build.sourceencoding>utf- 8 </project.build.sourceencoding> <project.reporting.outputencoding>utf- 8 </project.reporting.outputencoding> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> |
spring boot starter parent指定了一系列插件的默認(rèn)配置,包括maven-failsafe-plugin,maven-jar-plugin和maven-surefire-plugin。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-failsafe-plugin</artifactid> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jar-plugin</artifactid> <configuration> <archive> <manifest> <mainclass>${start- class }</mainclass> <adddefaultimplementationentries> true </adddefaultimplementationentries> </manifest> </archive> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> <configuration> <includes> <include>** /*tests.java</include> <include>**/*test.java</include> </includes> <excludes> <exclude>**/ abstract *.java</exclude> </excludes> </configuration> </plugin> |
spring boot starter parent從spring-boot-dependencies繼承了什么?
spring boot dependencies定義了所有spring boot項目的默認(rèn)依賴關(guān)系管理。如果我們想要使用特定依賴項的新版本,我們可以通過在項目pom中指定新屬性來覆蓋該版本。下面的摘錄顯示了由spring boot dependencies父pom管理的一些重要依賴項。由于spring boot starter parent繼承自spring-boot-dependencies,因此它也共享所有這些特性。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<properties> <activemq.version> 5.13 . 4 </activemq.version> ... <ehcache.version> 2.10 . 2.2 . 21 </ehcache.version> <ehcache3.version> 3.1 . 1 </ehcache3.version> ... <h2.version> 1.4 . 192 </h2.version> <hamcrest.version> 1.3 </hamcrest.version> <hazelcast.version> 3.6 . 4 </hazelcast.version> <hibernate.version> 5.0 . 9 . final </hibernate.version> <hibernate-validator.version> 5.2 . 4 . final </hibernate-validator.version> <hikaricp.version> 2.4 . 7 </hikaricp.version> <hikaricp-java6.version> 2.3 . 13 </hikaricp-java6.version> <hornetq.version> 2.4 . 7 . final </hornetq.version> <hsqldb.version> 2.3 . 3 </hsqldb.version> <htmlunit.version> 2.21 </htmlunit.version> <httpasyncclient.version> 4.1 . 2 </httpasyncclient.version> <httpclient.version> 4.5 . 2 </httpclient.version> <httpcore.version> 4.4 . 5 </httpcore.version> <infinispan.version> 8.2 . 2 . final </infinispan.version> <jackson.version> 2.8 . 1 </jackson.version> .... <jersey.version> 2.23 . 1 </jersey.version> <jest.version> 2.0 . 3 </jest.version> <jetty.version> 9.3 . 11 .v20160721</jetty.version> <jetty-jsp.version> 2.2 . 0 .v201112011158</jetty-jsp.version> <spring-security.version> 4.1 . 1 .release</spring-security.version> <tomcat.version> 8.5 . 4 </tomcat.version> <undertow.version> 1.3 . 23 . final </undertow.version> <velocity.version> 1.7 </velocity.version> <velocity-tools.version> 2.0 </velocity-tools.version> <webjars-hal-browser.version>9f96c74</webjars-hal-browser.version> <webjars-locator.version> 0.32 </webjars-locator.version> <wsdl4j.version> 1.6 . 3 </wsdl4j.version> <xml-apis.version> 1.4 . 01 </xml-apis.version> </properties> |
將maven 3.2.1定義為所需的最低版本:
1
2
3
|
<prerequisites> <maven> 3.2 . 1 </maven> </prerequisites> |
總結(jié)
以上所述是小編給大家介紹的spring-boot-starter-parent簡介,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!
原文鏈接:https://www.jdon.com/springboot/spring-boot-starter-parent.html