本文概述
- Spring Boot Starter父级
- Spring Boot Starter父内部
- 没有父级的Spring Boot Starter
<
parent>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-starter-parent<
/artifactId>
<
version>
1.4.0.RELEASE<
/version>
<
/parent>
父Pom允许我们为多个子项目和模块管理以下内容:
- 配置:它使我们能够保持Java版本和其他相关属性的一致性。
- 依赖关系管理:它控制依赖关系的版本以避免冲突。
- 源编码
- 默认Java版本
- 资源过滤
- 它还控制默认插件配置。
Spring Boot Starter父内部Spring Boot Starter Parent将spring-boot-dependencies定义为父pom。它从spring-boot-dependencies继承了依赖管理。
<
parent>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-dependencies<
/artifactId>
<
version>
1.6.0.RELEASE<
/version>
<
relativePath>
../../spring-boot-dependencies<
/relativePath>
<
/parent>
默认父Pom
<
properties>
<
java.version>
1.8<
/java.version>
<
resource.delimiter>
@<
/resource.delimiter>
<
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>
<
/properties>
属性部分定义了应用程序默认值。 Java的默认版本是1.8。我们还可以通过在项目pom中指定属性< java.version> 1.8 < /java.version> 来覆盖Java版本。父pom还包含其他一些与编码和源有关的设置。如果未在application.properties文件中定义, 则Spring Boot框架将使用这些默认值。
插件管理
【Spring Boot Starter父级用法介绍】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依赖关系
spring-boot-starter-parent依赖项从spring-boot-dependencies继承而来, 它也具有所有这些特征。因此, Spring Boot将依赖项列表作为依赖项管理的一部分进行管理。
<
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>
<
prerequisites>
<
maven>
3.2.1<
/maven>
<
/prerequisites>
没有父级的Spring Boot Starter在某些情况下, 我们不需要继承pom.xml文件中的spring-boot-starter-parent。为了处理这种用例, Spring Boot提供了灵活性, 可以在不继承spring-boot-starter-parent的情况下仍然使用依赖项管理。
<
dependencyManagement>
<
dependencies>
<
dependency>
<
!-- Import dependency management from Spring Boot -->
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-dependencies<
/artifactId>
<
version>
2.1.1.RELEASE<
/version>
<
type>
pom<
/type>
<
scope>
import<
/scope>
<
/dependency>
<
/dependencies>
<
/dependencyManagement>
在上面的代码中, 我们可以看到我们为此使用了< scope> 标记。当我们要对特定的依赖项使用不同的版本时, 这很有用。
推荐阅读
- Spring Boot使用Tomcat进行项目部署(图文)
- Spring Boot多模块项目实例详细图解
- android 使用SQLite存储数据
- 关于常用的web.xmlapplicationContext.xml与springMVC-servlet.xml
- Android五种数据存储方式
- 猫眼电影App抓包获取评论数据接口
- Xamarin.Android 无法检索到 Resource 问题
- HDU 6333:Harvest of Apples
- android studio 中的build.gradle