服务器之家

服务器之家 > 正文

解析spring-boot-starter-parent简介

时间:2021-06-01 11:51     来源/作者:jdon

本指南将帮助您了解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为多个子项目和模块管理以下内容:

  • 配置 - java版本和其他属性
  • depedency management - 依赖项的版本
  • 默认插件配置

内部原理

首先 启动器spring boot starter parent将spring-boot-dependencies定义为父pom。它从spring-boot-dependencies继承了依赖关系管理。

?
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>

默认的java版本是1.6。项目可以通过<java.version>1.8</java.version>在项目pom中指定属性来覆盖它。还有一些与编码和源相关的其他设置,目标版本也在父pom中设置。

?
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指定了一系列插件的默认配置,包括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项目的默认依赖关系管理。如果我们想要使用特定依赖项的新版本,我们可以通过在项目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>

spring boot

总结

以上所述是小编给大家介绍的spring-boot-starter-parent简介,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.jdon.com/springboot/spring-boot-starter-parent.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部