1. ホーム
  2. maven

[解決済み】Spring Boot - すでに親POMがある場合の親Pom

2022-05-09 16:31:17

質問

すでに必須の親POMを持つプロジェクトに、spring-bootの親POMを含めるための特定の推奨アプローチはありますか?

組織の親から拡張する必要があるプロジェクトに何を推奨しますか(これは非常に一般的で、フィーダーレポによっては、多くの/ほとんどのプロジェクトがMavenセントラルに公開するものでさえあります)。ビルドのほとんどは、実行可能なJARの作成に関連しています(例:組み込みのTomcat/Jettyを実行する)。親から拡張することなく、すべての依存関係を取得できるように物事を構成する方法があります(コンポジションと継承の類似点)。しかし、その方法では、ビルドのものを得ることはできません。

つまり、必要な親POMの中にすべてのspring-boot親POMを含めることが望ましいのか、それとも単にプロジェクトPOMファイルの中にPOM依存性を持たせることが望ましいのかです。

その他のオプションは?

TIA

スコット

解決方法は?

spring-boot-starter-parentをbom"のように使用することができます。 (c.f. そして、scope=importで依存関係管理セクションにのみインクルードします。そうすれば、実際の親の設定を置き換えることなく、この機能(依存関係管理など)を使用する利点の多くを得ることができます。

その他、主に以下の2つのことができます。

  1. オーバーライドしたい依存関係のバージョンを素早く設定するためのプロパティのロードを定義します。
  2. 一部のプラグインをデフォルトで設定する(主に Spring Boot の maven プラグイン)。そのため、自分の親を使用する場合は、これらを手動で行う必要があります。

で提供される例 Spring Bootのドキュメント :

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>