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 で入手できます。一方はスターターの親を使用し、もう一方はカスタムの親を使用します。