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

SpringBoot 依賴管理

Spring Boot gestisce automaticamente le dipendenze e la configurazione. Ogni versione di Spring Boot fornisce un elenco delle dipendenze supportate. L'elenco delle dipendenze può essere confrontato con Maven usati insieme Elenco dei materialiuna parte di (la dipendenza di avvio invernale). Pertanto, non è necessario specificare la versione della dipendenza nella configurazione. Spring Boot la gestisce autonomamente. Quando aggiorniamo la versione di Spring Boot, Spring Boot aggiorna automaticamente tutte le dipendenze in modo coerente.

Vantaggi della gestione delle dipendenze

Fornisce un'informazione centralizzata delle dipendenze specificando una versione di Spring Boot in un solo posto. Aiuta quando si passa da una versione all'altra. Evita la non corrispondenza tra le librerie Spring Boot di diverse versioni. Dobbiamo solo scrivere un nome di repository e specificare la versione. È molto utile nei progetti a modulo multipli.

Attenzione: Se necessario, Spring Boot può anche sovrascrivere le versioni delle dipendenze.

il sistema di gestione delle dipendenze Maven

Il progetto Maven parte da spring-boot-starter-parent hereda le seguenti funzionalità:

predefinita versione del compilatore Java UTF-8 codifica di origine Ereda da spring-boot-dependency-pom una Dependency Section Sezione Dipendenza  etichetta. Questa gestisce le versioni delle dipendenze comuni. Per questa dipendenza, ignora dipendenze ereditate dal POM di spring-boot-dependencies intelligentefiltering delle risorse intelligenteplugin configuration

eredita Starter Parent

Quando si configura il progetto, le seguenti spring-boot-starter-parent verranno ereditati automaticamente.

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.BUILD-SNAPSHOT</version> <!-- lookup parent from repository -->
<relativePath/> 
</parent>
Attenzione: Nella sezione delle dipendenze sopra, abbiamo specificato solo la versione di Spring Boot. Se si desidera aggiungere altri starter, è sufficiente eliminareetichetta. Allo stesso modo, possiamo anche sovrascrivere le dipendenze personali sovrascrivendo le proprietà del progetto.

Ad esempio, se si desidera aggiungere un'altra dipendenza identica a quella iniettata, iniettare di nuovo la dipendenza <properties>per sovrascrivere

per cambiare la versione di Java

Possiamo anche usare <java.version>Possiamo usare l'etichetta per cambiare la versione di Java.

<properties>  
<java.version>1.8</java.version>  
</properties>

Aggiungi plugin Maven Spring Boot

Possiamo anche aggiungere pom.xml nel file Aggiungi plugin Maven.Raccoglie il progetto in un file eseguibile jar nel file.

<build>  
<plugins>  
<plugin>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-maven-plugin</artifactId>  
</plugin>  
</plugins>  
</build>

Spring Boot senza POM del parent

Se non vogliamo usare spring-boot starter-parent Sebbene non utilizziamo le dipendenze, ma vogliamo godere dei vantaggi della gestione delle dipendenze, possiamo usare  Etichette, come mostrato di seguito:

Attenzione: Non mantiene la gestione delle estensioni.
<dependencyManagement>
<dependencies>
<dependency> <!-- import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

以上依賴項不允許覆蓋。為了實現覆蓋,我們需要在項目的  標記中的spring-boot-dependencies條目之前添加一個條目。

例如,要升級另一個 spring-data-releasetrain ,在pom.xml文件中添加以下依賴項。

<dependencyManagement>
<dependencies>
<!--Override Spring Data release train-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>