1. ホーム
  2. maven

[解決済み] Maven : "runtime "スコープは何のためにあるのですか?重複

2022-08-25 11:39:08

質問

重複の可能性があります。

コンパイル時依存性と実行時依存性を理解する

実行時のスコープを持つ依存関係が、コンパイル時ではなく、実行時に利用可能になることは理解しました。しかし、なぜそのようにしたいのか理解できません! なぜ、単に "compile"スコープを使用しないのでしょうか?

その docs は本当に役に立ちません。何か思い当たることはありますか?

どのように解決するのですか?

ランタイムは、ユニットテストに必要な依存関係や、コンパイル時ではなくランタイムに必要な依存関係のために有用です。これは通常、プログラム コードで直接参照されない JDBC ドライバーのような、動的にロードされるコードである可能性があります。

依存性を実行時に設定することは、コードに偶発的な依存性がないことを確実にし、また依存性が推移的であることを維持します。したがって、たとえば、モジュール A がライブラリ X にランタイム依存し、モジュール B がモジュール A に依存する場合、それは ではなく provided" または "compile" を使用して、ライブラリ X への依存を継承します。 を使用すると、BがXに依存するようになります。