Mavenのオプションの依存関係
1. 概要
この簡単なチュートリアルでは、Mavenの
Mavenの復習については、包括的なガイドを確認してください。
2. とは ?
他のMavenプロジェクトの依存関係となるMavenプロジェクトを作成する場合があります。 このようなプロジェクトで作業する場合、そのプロジェクトの機能のサブセットにのみ役立つ1つ以上の依存関係を含める必要がある場合があります。
エンドユーザーがその機能サブセットを使用しない場合でも、プロジェクトはそれらの依存関係を推移的に取り込みます。 これにより、ユーザーのプロジェクトサイズが不必要に肥大化し、他のプロジェクト依存関係と競合する依存関係バージョンが導入される可能性があります。
理想的には、プロジェクトの機能サブセットを独自のモジュールに分割し、プロジェクトの残りの部分を汚染しないようにする必要があります。 ただし、これは必ずしも実用的ではありません。
これらの特別な依存関係をメインプロジェクトから除外するために、Mavenの
3. 使い方
これから見ていくように、
次のプロジェクトpomがあると仮定しましょう。
<project>
...
<artifactId>project-with-optionals</artifactId>
...
<dependencies>
<dependency>
<groupId>com.baeldung</groupId>
<artifactId>optional-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<optional>true</optional>
</dependency>
</dependencies>
</project>
この例では、 オプション-プロジェクトオプションとしてラベル付けされ、の使用可能な依存関係として残りますオプション付きプロジェクトまるで
の効果を見るために
<project>
...
<artifactId>main-project</artifactId>
...
<dependencies>
<dependency>
<groupId>com.baeldung</groupId>
<artifactId>project-with-optionals</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
ここで、main-project内からoptional-projectを参照しようとすると、optional-projectが存在しないことがわかります。 これは、
main-projectにoptional-projectが必要であることがわかった場合は、それを依存関係として宣言する必要があります。
4. 結論
この記事では、Mavenの
この記事のソースコードは、Githubでから入手できます。