这篇文章给大家分享的是有关spring-boot-starter-parent的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Spring Boot Starter Parent如何帮助管理依赖项版本,所有Spring Boot项目通常使用spring-boot-starter-parent作为pom.xml中的父项:
<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继承了依赖关系管理。
<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中设置。
<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。
<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,因此它也共享所有这些特性。
<properties> <activemq.version>5.13.4</activemq.version> ... <ehcache.version>2.10.2.2.21</ehcache.version> <ehcache3.version>3.1.1</ehcache3.version> ... <h3.version>1.4.192</h3.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定义为所需的最低版本:
<prerequisites> <maven>3.2.1</maven> </prerequisites>
感谢各位的阅读!关于“spring-boot-starter-parent的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。