最新の安定バージョンについては、Spring Boot 3.5.7 を使用してください! |
プラグインの使用
Maven ユーザーは、spring-boot-starter-parent プロジェクトから継承して、適切なデフォルトを取得できます。親プロジェクトは次の機能を提供します。
デフォルトのコンパイラーレベルとしての Java 17。
UTF-8 ソースエンコーディング。
-parametersを使用したコンパイル。共通の依存関係のバージョンを管理する、
spring-boot-dependenciesPOM から継承された依存関係管理セクション。この依存関係管理により、独自の POM で使用するときに、これらの依存関係の<version>タグを省略できます。repackage実行 ID を使用したrepackageゴールの実行。ネイティブイメージを生成できるようにビルドを構成する
nativeプロファイル。実用的なプラグイン構成(
Git Commit Id Plugin[GitHub] (英語) 、および shade [Apache] (英語) )。プロファイル固有のファイルを含む
application.propertiesおよびapplication.ymlの実用的なリソースフィルタリング (たとえば、application-dev.propertiesおよびapplication-dev.yml)
application.properties ファイルと application.yml ファイルは Spring スタイルのプレースホルダー(${…})を受け入れるため、Maven フィルタリングは @..@ プレースホルダーを使用するように変更されています。(resource.delimiter と呼ばれる Maven プロパティを設定することにより、それをオーバーライドできます。) |
次に、代わりにソースとターゲットのオプションを構成します。 |
親スターター POM の継承
spring-boot-starter-parent から継承するようにプロジェクトを構成するには、parent を次のように設定します。
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.11</version>
</parent>| この依存関係では、Spring Boot バージョン番号のみを指定する必要があります。追加のスターターをインポートする場合、バージョン番号を安全に省略できます。 |
この設定では、独自のプロジェクトのプロパティをオーバーライドすることで、個々の依存関係をオーバーライドすることもできます。たとえば、異なるバージョンの SLF4J ライブラリと Spring Data リリーストレインを使用するには、次のコードを pom.xml に追加します。
<properties>
<slf4j.version>1.7.30</slf4j.version>
<spring-data-bom.version>2024.1.10</spring-data-bom.version>
</properties>依存関係バージョンプロパティの完全なリストについては、Spring Boot リファレンスの依存関係バージョンのプロパティセクションを参照してください。
| 各 Spring Boot リリースは、サードパーティの特定の依存関係セットに対して設計およびテストされています。バージョンを上書きすると互換性の問題が発生する可能性があるため、注意して行う必要があります。 |
親 POM なしで Spring Boot を使用する
spring-boot-starter-parent POM から継承しない理由があるかもしれません。使用する必要がある独自の企業標準の親がいる場合や、すべての Maven 構成を明示的に宣言したい場合があります。
spring-boot-starter-parent を使用したくない場合でも、次のように import スコープの依存関係を使用することで、依存関係管理(プラグイン管理ではなく)の利点を維持できます。
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.4.11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> 上記のサンプルセットアップでは、上記で説明したように、プロパティを使用して個々の依存関係を上書きすることはできません。同じ結果を得るには、プロジェクトの dependencyManagement セクションのエントリを spring-boot-dependencies エントリの前に追加する必要があります。たとえば、異なるバージョンの SLF4J ライブラリと Spring Data リリーストレインを使用するには、次の要素を pom.xml に追加します。
<dependencyManagement>
<dependencies>
<!-- Override SLF4J provided by Spring Boot -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<!-- Override Spring Data release train provided by Spring Boot -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-bom</artifactId>
<version>2024.1.10</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.4.11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>コマンドラインで設定を上書きする
このプラグインには、spring-boot をはじめとする多数のユーザープロパティが用意されており、コマンドラインから構成をカスタマイズできます。
たとえば、次のように、アプリケーションの実行時に有効になるようにプロファイルを調整できます。
$ mvn spring-boot:run -Dspring-boot.run.profiles=dev,localデフォルトを設定し、コマンドラインでそれを上書きできるようにするには、ユーザー指定のプロジェクトプロパティと MOJO 構成を組み合わせて使用する必要があります。
<project>
<properties>
<app.profiles>local,dev</app.profiles>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>${app.profiles}</profiles>
</configuration>
</plugin>
</plugins>
</build>
</project> 上記により、local と dev がデフォルトで有効になります。専用のプロパティが公開されたため、コマンドラインでもこれを上書きできます。
$ mvn spring-boot:run -Dapp.profiles=test