SpringBoot Starter Parent

spring-boot-starter-parent是項目啟動器。它為我們的應用程序提供了默認配置。所有依賴項都在內部使用它。所有的Spring Boot項目在pom.xml文件中都將spring-boot-starter-parent用作父項。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>

Parent Poms使我們可以管理多個子項目和模塊的以下內容:

Configuration: 它使我們能夠維護Java版本和其他相關屬性的一致性。 Dependency Management: 它控制依賴性的版本以避免沖突。 源編碼 默認Java版本 資源過濾 它還控制默認的插件配置。

spring-boot-starter-parent從spring-boot-dependencies繼承依賴關系管理。我們只需要指定Spring Boot版本號即可。如果需要額外的啟動器,我們可以安全地省略版本號。

Spring Boot Starter Parent內部

Spring Boot Starter Parent定義了spring-boot。 -依賴關系作為父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中指定屬性  1.8來覆蓋Java版本。父pom還包含其他一些與編碼和源有關的設置。如果未在application.properties文件中定義,則Spring Boot框架會使用這些默認值。

插件管理

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依賴項繼承而來,它也具有所有這些特征。因此,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>

在上面的代碼中,我們可以看到我們?yōu)榇耸褂昧?<scope>標簽。當我們要對特定的依賴項使用不同的版本時,這很有用。


丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清