2011-06-30 2 views
0

私は、2つの子モジュールAとBを持つmaven親プロジェクトPを持っています.AとBは両方ともPフォルダの中にあります。 Pは、のpom.xmlのモジュールセクションが似ている:Aは、(及びBアーティファクトを除く同じ)maven eclipse:eclipseターゲットが悪い.classpathを生成する

<modules> 
    <module>A</module> 
    <module>B</module> 
</modules> 

<parent> 
    <groupId>some.group</groupId> 
    <artifactId>A</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 

今はAが添加することにより、Bに依存製Aさんのpom.xml

<dependencies> 
    <dependency> 
    <groupId>some.group</groupId> 
    <artifactId>B</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <type>jar</type> 
    <scope>compile</scope> 
    </dependency> 
</dependencies> 

私はPにmvn installを行う場合は、すべての罰金です。しかしP上mvn eclipse:eclipseを実行した後、Aで生成された.classpathファイルが間違っている、とEclipseがBから依存関係を解決することはできません

生成.classpathが含まれています:代わりに

<classpathentry kind="src" path="/B"/> 

の作業

<classpathentry kind="var" path="M2_REPO/some/group/B/0.0.1-SNAPSHOT/B-0.0.1-SNAPSHOT.jar"/> 

何が間違っている可能性がありますか?ありがとうございました。

答えて

2

プロパティuseProjectReferencesをfalseに設定した場合(-DuseProjectReferences = false)、必要に応じて動作します(デフォルトはtrue)。ドキュメントをご覧くださいhere

+0

ありがとうございます。これは回避策です。問題の根本は、Pディレクトリの下にAとBがあり、eclipse:eclipseターゲットは/ P/Bの代わりに/ Bという参照を生成するということです。たぶん私はフラットなプロジェクト構造に切り替える必要があります。 – ron

+0

注:問題の詳細を調べると、フラットな構造はあまり好ましくありません。だから私たちはアーティファクト参照とmvn installのどちらかを使うことができます。あるいは、親プロジェクトをワークスペースとして使用し、子を直接インポートすることもできます。あるいは、誰かが.classpath生成を修正して、ワークスペースに対する子パスを正しく含めることができます。 – ron

関連する問題