2017-08-18 17 views
0

は、私はいくつかのモジュールがあります。マルチモジュールMavenプロジェクトでの最適なアプローチは?

A 
B 
C 

を、各モジュールは、その依存関係の一つとしてコアモジュールがあります

A+core 
B+core 
C+core 

そして今、私はA、Bをパッケージになっています、Cを一緒にしかし私はコアモジュールを除外BCと私はコアモジュールをAにしました。

D 
|+ A-core 
|+ B-removed core 
|+ C-removed core 

この状況では、どうすればよいですか。これは悪い練習ですか?あなたがそうDpom.xml
core依存性を引っ張るつ以上の依存関係を有することができる

+0

各モジュールA、B、Cの 'core'は同じ' core'モジュールですか? – khmarbaise

+0

はい、変更する必要があります – Priyamal

答えて

3

、除外は必要ありません。
ここで重要なことは、ABCがそうでなければD包装coreのバージョンではなく、別のものを含めることができcore依存のまったく同じバージョンの依存という点です。
エラーなくコンパイルできますが、これらの2つのバージョンの使用が互換性がない場合は、実行時に例外が生成されます。

ので、Acoreのユニークなバージョンを使用することに焦点を当てBC
親のpomを使用するか、一般的な依存関係を集約する依存関係を作成することは簡単です。

+0

あなたは大歓迎です。可能です。しかし、一般的には、アプリケーション全体の依存関係/ Javaバージョン/プラグインの設定などを継承/強制するために、親アプリケーションをすべての同じアプリケーションのモジュールに関連付けます。これにより、アプリケーションの構築がより一貫性があり、簡潔になり、エラーが発生しにくくなります。 – davidxxx

2

プロジェクトのレイアウト:他のモジュールで依存関係としてcoreを使用して

root 
    +--- pom.xml 
    +--- core 
    !  +-- pom.xml 
    +--- A 
    ! +-- pom.xml 
    +--- B 
    ! +-- pom.xml 
    +--- C 
     +-- pom.xml 

。ビルドの順序はMavenによって処理されます。

関連する問題