関連するすべてのサブモジュールの親 POM としても機能するマルチモジュール POM があります。それを呼び出しますMultiModulePOM
。Module1
に番号が付けられた約 70 のモジュールがありますModule70
。
現在: これらのモジュールの最初の 30 個は、コンパイル時にのみ一連の JAR ファイルを必要とします。それは -scope=provided
です。一連の JAR ファイルについて話しているので、これらの 30 個のモジュールを同期しておくのは非常に面倒です。一般的に、私は定義をあちこちにコピーすることはあまり好きではありません。
そこで、依存関係のグループ化の落とし穴に陥りました。良いアイデアのように思えましたが、provided
依存関係では機能しません。つまり、依存する JAR を というモジュールにグループ化し、依存させるExtDependencies
と、によって参照される JARは、スコープが であるため、に推移的に追加されません。Module1
ExtDependencies
ExtDependencies
Module1
provided
(最後のパラグラフが真実でない場合は、私を本当に窮地から解放することができるので、私に知らせてください)
私が見ることができた他の唯一のオプションは、 (たとえば) という名前の親 POM を作成することでしたIntermediaryPOM
。依存する JAR ファイルのセットをIntermediaryPOM
拡張して登録します。モジュール-次に拡張します。MultiModulePOM
scope=provided
Module1
Module30
IntermediaryPOM
それはトリックを行うように見えましたが、3つの問題があります:
- 本当に必要かどうかわからないPOMの別のレイヤーが追加されます。
- その後、配布時に、中間の POM もインストール/展開する必要があることに気付きました。
- 一般的なケースを考えてみましょう。中間 POM には、他の JAR セット (モジュール 31 ~ 50 用) に使用される他の兄弟が含まれる場合があります。したがって、このソリューションはうまくスケーリングできないようです。
だから私の質問は - あなたの経験によると、これにアプローチする最良の方法は何ですか? そのようなユースケースの既知のベストプラクティスはありますか?