scopeタグは、Mavenにおける役割は何ですか。
Mavenのscopeタグは、依存関係のスコープを定義し、プロジェクトでの依存関係の使用方法を指定します。
scopeタグの値には、以下の種類があります:
- コンパイル:デフォルト値であり、依存関係がコンパイル、テスト、実行時のいずれでも利用可能であることを示します。 これらは最終的な成果物にパッケージされます。
- 提供された:コンパイルやテスト時に依存関係を表示するために使用されますが、実行時にはJDKやコンテナが提供します。例えば、servlet-apiはコンパイルやテスト時に必要ですが、実行時にはコンテナが提供します。
- ランタイム:ランタイムで利用可能であり、コンパイルやテスト時には必要ない依存関係を表示します。例えば、データベースドライバはランタイムでのみ必要となります。
- テスト:依存関係はテスト時のみ使用可能であり、コンパイルや実行には関与しません。例えばJUnitです。
- system: 似たように、systemPathを使用して依存関係のパスを指定する必要があります。システムのパスが一貫していないため、推奨されません。
- import:他のモジュールから依存関係の管理情報を取り込むためにdependencyManagementでのみ使用される。実際に依存関係を導入するわけではない。
異なるスコープを設定することで、依存関係の使用可能な段階を制御し、不要な依存関係を削減して、プロジェクトの構築と実行を最適化することができます。