2011-04-07 12 views
1

私のプロジェクトをMavenサブモジュールに分割し、他のプロジェクトのMaven依存として再利用できることを期待していました。依存関係としてのMavenモジュールの再利用

ドキュメントからわかるように、子モジュールは親プロジェクトを指定する必要があります。これは、依存関係として再利用するのには不向きです。

これはモジュールの分割をはるかに少なく魅力的なIMHOにします。または私は何かを逃していますか?

私はそれらを共有する必要があるときにコンポーネントでプロジェクトを分割する傾向があります。それ以外の場合、なぜ気になるのですか?

誰かがそれについて詳しく説明できますか?

親を指定していないモジュールを宣言できますか? どうすれば依存関係をリファクタリングできますか?

歓声

答えて

1

relativePathは、ビルド時にだけヒントです。すべてのモジュールと親がインストールされたら、他のプロジェクトの依存関係として個々のモジュールを参照できます。

1

私がドキュメントから理解しているように、 子モジュールは、 親プロジェクトを指定する必要があります。これにより、彼らは 依存関係として再利用するのには適していません。

親プロジェクトを指定しても、モジュールは依存関係として不適切なものにはなりません。ほとんどのモジュールには親pomがあります。これは共通の依存関係/プラグインなどを定義しています。たとえば、バネの依存関係を参照してください。

親モジュールを指定していないモジュール を宣言することはできますか?

各モジュールは個別のプロジェクトです。したがって、親は必要ありません。通常、モジュールの階層構造では、各モジュールはフォルダーにあり、親のpomはモジュールの親フォルダーにあります。親pomは、通常、すべてのモジュールを構築します。親ポンポンが存在しない場合には

| 
--- module 1 
    | 
    --- pom.xml 
| 
--- module 2 
    | 
    --- pom.xml 
| 
pom.xml <-- parent pom 

、あなたは個別に各モジュールをビルドする必要があります。

thisも参照してください。

+0

親pomsとpomプロジェクトは便利ですが、間違いありません。しかし、この文書ではモジュール内に親を指定する必要があると述べています。ですから、別のプロジェクトのプロジェクトのサーバーモジュールを再利用したい場合、どうすればいいのですか? ' | ---サーバーモジュール | --- pom.xml ---クライアントモジュール ' – nodje

+0

@nodje。 springモジュール(spring-coreまたはspring-web)のpomファイルを見てください。これらのモジュールはどのプロジェクトでも使用でき、*親*宣言を持っています。 – Raghuram

0

親のポンとpomプロジェクトは便利ですが、間違いありません。しかし、この文書ではモジュール内に親を指定する必要があると述べています。ですから、別のプロジェクトのプロジェクトのサーバーモジュールを再利用したい場合は、どうすればいいのですか?上記の例を

| 
--- server 
    | 
    --- pom.xml 
| 
--- client 
    | 
    --- pom.xml 
| 
--- webapp 
    | 
    --- pom.xml 
| 
--- Pom project 1 
    | 
    <modules> 
     <module>../server 
     <module>../client 
| 
--- Pom project 2 
    | 
    <modules> 
     <module>../server 
     <module>../webapp 

、DOCによれば、サーバプロジェクトは、同様POM親としてプロジェクト1、及びPOMプロジェクト2を指定することになっています。

このような場合、どのようにモジュールと依存関係の概念を組み合わせて扱うのですか?