2017-06-30 14 views
1

CVSで相対的にフラットなプロジェクト構造を持ち、Gitへの移行後にGitリポジトリのチェックアウトのために問題が発生しました。 CVSリポジトリは決して決済されませんでしたが、Git on Eclipseではプロジェクトがチェックアウトされるリポジトリフォルダがあります。これは私たちのMavenスクリプトに問題を引き起こしています。複数の複数のモジュールがある依存関係を持つ親POM

新しい構造は次のとおりです。

New Folder Structure

私は親pom.xmlを参照idmlleancorepom.xmlファイルを追加しました。 idml以下のプロジェクトは、中間体idmlの親のpom.xmlおよびleancoreを指し、中間体leancoreの親のpom.xmlを指します。

  1. 2つのマルチモジュールプロジェクト間の依存関係をどのように定義しますか?
  2. このような構造をサポートするために、親POMにはどのような要素がありますか?
  3. AdjHubCoreはどうすればidml - idmlj2eertの依存関係を参照できますか?
  4. すべてのモジュールとwarファイルをルート親のpom.xmlファイルから作成したいと考えています。
+0

2つの複数のモジュールproject_の間の "依存関係"とはどういう意味ですか?アグリゲータ(マルチモジュール)プロジェクトは( ' pom'が' jar'ではなく)依存関係にはなりません。基本的に、サブモジュールプロジェクトは通常のMavenプロジェクトで、あたかも単独で存在するかのように扱うことができます。あなたの説明は、 "idmlj2eert_ on"と "_idpendency ** in ** idml - idmlj2eert_"で "_dependency **"が異なります。どちらですか? –

+0

AdjHubCoreはidmlj2eertに依存しています – Ravi

答えて

1

あなたidmlj2eert POMは、次のようになります。代替ルートPOMで<dependencyManagement>を使用することです

... 
    <dependency> 
     <groupId>idml</groupId> 
     <artifactId>idmlj2eert<artifactId> 
     <version>0.0.1-SNAPSHOT<>version> 
    </dependency> 
    ... 

、そのようなものがあるの回避:

... 
    <groupId>idml</groupId> 
    <artifactId>idmlj2eert<artifactId> 
    <version>0.0.1-SNAPSHOT<>version> 
    ... 

次に、あなたのAdjHubCoreがどのように見えます子POMで依存関係のバージョンを宣言します。ルートPOMは、そのような子POMの複数のレベルにまたがって直接または推移的な<parent> POMでなければなりません。

他の依存関係との違いはありません。 Maven Reactorはビルドの開始時にマルチモジュールプロジェクト内の(イントラ)依存関係に従って適切なビルド順序を処理します。

集約(マルチモジュール)と継承(親子関係)は異なることを覚えておいてください。プロジェクトはどちらかを使用することができ、両方を使用することもできます。 POM Reference, Inheritance v. AggregationおよびMaven: The Complete Reference, 3.6.2. Multi-module vs. Inheritanceを参照してください。

関連する問題