English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pom padre di avvio di SpringBoot

spring-boot-starter-parent è un avviatore di progetto. Fornisce configurazioni predefinite per la nostra applicazione. Tutte le dipendenze vengono utilizzate internamente. Tutti i progetti Spring Boot utilizzano spring-boot-starter-parent come progetto padre nel file pom.xml.

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

I Pom padre ci permettono di gestire i seguenti contenuti di più sotto-progetti e moduli:

Configurazione: Ci permette di mantenere la coerenza della versione Java e di altre proprietà correlate. Gestione delle dipendenze: Controlla la versione delle dipendenze per evitare conflitti. Codifica di origine Versione Java predefinita Filtraggio delle risorse Controlla anche la configurazione dei plugin predefiniti.

spring-boot-starter-parent eredita la gestione delle dipendenze da spring-boot-dependencies. Dobbiamo solo specificare il numero di versione di Spring Boot. Se necessario, possiamo tranquillamente omettere il numero di versione dell'avviatore aggiuntivo.

All'interno del Pom padre di avvio di Spring Boot

Il Pom padre di avvio di Spring Boot definisce le dipendenze di spring-boot come dipendenze padre. Eredita la gestione delle dipendenze da 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 padre predefinito

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

La parte delle proprietà definisce i valori predefiniti dell'applicazione. La versione predefinita di Java è 1.8. Possiamo anche specificare le proprietà nel file pom del progetto.  1.8per coprire la versione di Java. Il parent pom contiene anche altre impostazioni relative alla codifica e alla sorgente. Se non definiti nel file application.properties, il framework Spring Boot utilizzerà questi valori predefiniti.

Gestione dei plugin

spring-boot-starter-parent Specificò molte configurazioni predefinite per i plugin, tra cui maven-failsafe-plugin, maven-jar-plugin e 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>

Dipendenze di Spring Boot

La dipendenza spring-boot-starter-parent eredita le dipendenze da spring-boot e ha tutte queste caratteristiche. Pertanto, Spring Boot gestisce l'elenco delle dipendenze come parte della gestione delle dipendenze.

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

Starter di Spring Boot senza padre

In alcuni casi, non è necessario ereditare il file pom.xml di spring-boot-starter-parent. Per gestire tali casi, Spring Boot offre flessibilità, consentendo di utilizzare la gestione delle dipendenze senza ereditare 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>

Nel codice sopra, possiamo vedere che abbiamo utilizzato <scope>E 'utile quando dobbiamo utilizzare versioni diverse di dipendenze specifiche.