2012-05-10 26 views
2

にモジュールに依存します。問題がある:私はは、私はMavenプロジェクトの次のツリー構造を持っているのmaven

Root/pom.xml

<modules> 
    <module>moduleA</module> 
</modules> 

でポンポンとXMLのモジュールとしてModuleAを定義した場合、私は

Root/pom.xml

<dependencies> 
    <dependency> 
     <groupId>Root</groupId> 
     <artifactId>moduleA</artifactId> 
     <version>1.0</version> 
     <scope>install</scope> 
    </dependency> 
</dependencies> 
と根の依存関係としてそれを宣言することはできません

これは、勾配が巡回するためですこのように:

[INFO] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='Root:moduleA'}' and 'Vertex{label='Root:moduleA'}' introduces to cycle in the graph Root:moduleA --> Root:moduleA 

質問です:ルートポンポン上で実行installターゲットで構築されたmoduleAを維持する方法のexec-のmaven-pluginのでmoduleAのクラスを実行する能力を持っていますか?

答えて

1

あなたの質問は、鶏と卵の問題に似ていると思います。ルートPOMは、使用する成果物を生成するプロジェクトのアグリゲーターです。アーティファクトが生成される前に、それらは使用できません。あなたのモジュールAのクラスがあなたのルートPOM(別名アグリゲータ)に必要な場合は、それを別のプロジェクトでビルドする必要があります。 しかし、おそらくあなたのビルドプロセスでは、(ルートPOMではなく)後でMyClassを実行することができます。この実行を別のモジュールに移動し、moduleAに依存関係を設定することができます。

1

あなたは完全なpom.xmlを投稿していませんが、デフォルトではインストールプラグインはインストールゴールでは使用されていません。問題を解決すると思うプラグイン宣言の中で、moduleAを依存関係として宣言することができます。

一方、インストールゴールでmoduleAの一部を実行する必要がある場合、クラスを実行するだけの3番目のpom.xmlを使用しないとこの設定を使用することはできません。

関連する問題