スプリングブートスターターの親
1. 序章
このチュートリアルでは、 spring-boot-starter-parent と、それを利用して依存関係の管理を改善し、プラグインのデフォルト構成を作成し、Spring Bootをすばやく構築する方法について学習します。 ]アプリケーション。
また、starter-parent。によって提供される既存の依存関係とプロパティのバージョンをオーバーライドする方法についても説明します。
2. スプリングブートスターターの親
spring-boot-starter-parent プロジェクトは、特別なスタータープロジェクトです。これは、アプリケーションのデフォルト構成と、 SpringBootプロジェクトをすばやく構築するための完全な依存関係ツリーを提供します。
また、 maven-failsafe-plugin 、 maven-jar-plugin 、 maven-surefire-plugin 、mavenなどのMavenプラグインのデフォルト構成も提供します-war-plugin。
さらに、s pring-boot-starter-parentの親であるspring-boot-dependenciesから依存関係管理も継承します。
これをプロジェクトのpom.xmlに親として追加することで、プロジェクトでの使用を開始できます。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
spring-boot-starter-parentの最新バージョンはMavenCentralからいつでも入手できます。
3. 依存関係の管理
プロジェクトでスターターの親を宣言したら、dependencies タグで宣言するだけで、親から依存関係を引き出すことができます。
また、依存関係のバージョンを定義する必要はありません。Mavenは、親タグでスターター親に定義されたバージョンに基づいてjarファイルをダウンロードします。
たとえば、Webプロジェクトを構築している場合、 spring-boot-starter-web を直接追加でき、バージョンを指定する必要はありません。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
4. 依存関係管理タグ
スターターの親によって提供される依存関係の異なるバージョンを管理するために、dependentencyManagementセクションで依存関係とそのバージョンを明示的に宣言できます。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
</dependencyManagement>
5. プロパティ
スターターの親で定義されているプロパティの値を変更するには、プロパティセクションでその値を再宣言します。
spring-boot-starter-parentその親spring-boot-dependenciesは、すべての依存関係バージョン、Javaバージョン、およびMavenプラグインバージョンを構成するためのプロパティを使用します。
したがって、対応するプロパティを変更するだけで、これらの構成を簡単に制御できます。
スターターの親から取得する依存関係のバージョンを変更する場合は、依存関係タグに依存関係を追加して、そのプロパティを直接構成できます。
<properties>
<junit.version>4.11</junit.version>
</properties>
6. その他のプロパティのオーバーライド
プラグインバージョンの管理などの他の構成や、Javaバージョン、ソースエンコーディングの管理などの基本構成にもプロパティを使用できます。
新しい値でプロパティを再宣言する必要があります。
たとえば、Javaのバージョンを変更するには、java.versionプロパティで指定できます。
<properties>
<java.version>1.8</java.version>
</properties>
7. スターター親のないSpringBootProject
カスタムのMaven親がある場合もあります。 または、すべてのMaven構成を手動で宣言することもできます。
その場合、spring-boot-starter-parentプロジェクトを使用しないことを選択できます。 ただし、プロジェクトの importスコープに依存関係spring-boot-dependencies を追加することで、依存関係ツリーの恩恵を受けることができます。
スターターの親以外の別の親を使用する簡単な例でこれを説明しましょう。
<parent>
<groupId>com.baeldung</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
ここでは、親の依存関係としてparent-modules別のプロジェクトを使用しました。
この場合でも、importスコープとpomタイプに依存関係管理を追加することで、依存関係管理と同じ利点を得ることができます。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
さらに、前の例で行ったように、依存関係で宣言するだけで、任意の依存関係を取り込むことができます。 これらの依存関係にバージョン番号は必要ありません。
8. 概要
このチュートリアルでは、 spring-boot-starter-parent の概要と、子プロジェクトに親として追加する利点について説明しました。
次に、依存関係を管理する方法を学びました。 dependentencyManagementまたはプロパティを介して依存関係をオーバーライドできます。
このチュートリアルで使用されるスニペットのソースコードは、 Github で入手できます。一方はスターターの親を使用し、もう一方はカスタムの親を使用します。