2016-12-13 3 views
0

私はマルチモジュールのMavenプロジェクトを持っています(1レベルの深さのみ)。私はすべての子プロジェクトで同じことを繰り返す必要はありませんが、親プロジェクト自体に別の設定が必要な場合は、どうすればいいのですか?Maven:すべての子供がそうでなければ動作する間に、親を別のものにする方法は?

すべての成果物との依存関係のための共通のフォルダを作成しようとしている(しかし、私は他の同等の状況を想像することができます)ときに私が直面してる例がある:もちろん

<properties> 
    <__.build.folder>../last_build</__.build.folder> 
</properties> 

、これはどこな状況につながります私は2つのlast_buildフォルダを持っています.1つはすべての子プロジェクトに共通で、1つは上位レベルのフォルダにあります。

どのように私はすべての子のpom.xmlで同じ設定を複製する必要なく避けることができますか?

プロファイルを使用できますか? 私は知らない、私はMavenを初めて使う人だ。

おかげ

編集: この例では、last_buildは、親のpom.xmlを含むフォルダのサブフォルダです。子プロジェクトはすべて他のサブフォルダにあります。last_buildは "../last_build"としてアドレス指定する必要がありますが、親のpom.xmlでは対応しません!

| 
*--rootFolder 
|  | 
|  *--last_build // aggregation folder 
|  |  
|  *--subProject1 
|  |  | 
|  |  *--pom.xml (../last_build) 
|  | 
|  *--subProject2 
|  |  | 
|  |  *--pom.xml (../last_build) 
|  | 
|  *--subProject3 
|  |  | 
|  |  *--pom.xml (../last_build) 
|  |  
|  *--pom.xml (last_build) // different here for the parent project 
+1

親プロジェクトに別のフォルダが必要なのはなぜですか? –

+0

POMまたはプロパティのlast_buildに関する情報の目的は何ですか? – khmarbaise

+0

共通のビルドフォルダ - そうしないでください。必要ありません。 –

答えて

0

私はあなたが非常に有用な道を進んでいるとは思わないし、いくつか混乱するかもしれないと思う。

まず、最高レベルのルートまたは親pomには、プロジェクトもコードもリソースもアーティファクトもなく、出力ディレクトリも必要ないはずです。最高レベルにあるべきであるのは、モジュールを含む親のpomおよびサブディレクトリーだけです。

次の問題は、共通のビルドフォルダが必要だと思うことです。それが必要な合理的なシナリオを想像するのは難しいです。一般的にビルドされているアーティファクトはモジュールごとに1つの自己完結型のjar/warです。これらのアーティファクトは、installのライフサイクルを経て構築されるたびにローカルのリポジトリにキャッシュされます。彼らはそこから現場で使用することができます。

+0

ありがとうございます。しかし、あなたは私の元の質問の一例にすぎません。元の質問は、「すべてのサブポームや児童ポームに適用されるが、親のポームには適用されないプロパティを定義する方法」です。 – Sxilderik

+0

ここで実際のケースであるため、この "last_build"の例を選択しました。すべての成果物と依存関係は、ビルドフォルダではない1つのフォルダに集められなければなりません。しかし、この例は、元の質問の目的ではありませんでした... – Sxilderik

+0

しかし、私はあなたのaswerの最初の部分が好きです。私のプロジェクトは、1つのことを除いてそのパターンに従います。これらの依存関係がすべてのサブポーム(テスト段階のjunitなど)にあると予想しているため、ルートpomにいくつかの依存関係を指定します。その "last_build"フォルダ内のすべての依存関係をコピーするために依存関係プラグインを実行すると、これらの依存関係は上の "last_build"フォルダにコピーされますが間違っています。私はテストの依存関係を除外すべきだと思います。 – Sxilderik

関連する問題