2012-04-29 11 views
0

私はモジュールB(両方ともプロジェクトの子モジュール)のクラスに依存するmavenモジュールAを持っています。mavenプロジェクトの一部をモジュールとして取り出す

私は、次のしている Aさん pom.xml

<dependencies> 
    <dependency> 
     <groupId>test.pack</groupId> 
     <artifactId>B</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    </dependencies> 

しかし、私はAを構築しようとすると、Bが正しく依存関係には表示されません、私はクラスのコンパイルエラーを取得インポートステートメントのAtest.pack.packFromAパッケージでは、import test.pack.packFromB.*のようになります。

私のB依存関係は正しく動作しません。しかし、私はBのクラスをパックしてクラスパスに追加すると思ったので、それらを使うことができました。私はその依存関係に<type>を追加しようとしましたが、それは助けになりませんでした。私はここで間違って何をしていますか?前もって感謝します。

EDIT: 親のpom.xml<modules>一部は以下のようになります。ここでは

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

は私が取得エラーです:あなたがしようとした前Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project A: Compilation failure: Compilation failure:

+0

親pomのセクションを追加できますか?モジュールAをモジュールBで参照する場合は、モジュールAより先にコンパイルする必要があります。 – Lexandro

+0

@Lexandro返信いただきありがとうございます。今すぐ追加します。私はMavenのローカルリポジトリにBの戦争を移そうとしましたが、動作しませんでした。それは完了する必要がありますか? –

+0

@Lexandroまた、AとBの名前がこの記述を本当に良いものにしていない場合は、エラーを追加して、申し訳ありません。 –

答えて

1

あなたは、モジュールBにmvn installを行っていますビルドモジュールA?

mvn installの代わりに「mvn package」を実行すると、モジュールBはリポジトリに配置されないため、モジュールAをビルドするときにMavenはそれを検出しません。

また、親モジュールからマルチモジュールプロジェクトを構築しようとしましたか? (これを行うと、Mavenはモジュールを正しい順序で構築します)

これはそうでない場合は、参照しているクラスがモジュールBのsrc/main/java/test/pack/packFromBの下にあることを確認してください。src/test/java..より小さい場合は、特定の型が必要ですその依存関係の

希望に役立ちます。

+0

あなたの答えをありがとう。はい、私はすべてそれを行い、フォルダ構造は正しいものでなければなりません。しかし、おそらく、インストールは私が思ったほど成功していなかったので、私はそのすべてをやり直そうとします。 –

+0

私はこの問題を完全に解説していないうちに、本当に良いので、これを最良の答えとしてマークします。実際、私は戦争の依存関係を追加しようとしていましたが、これは悪い考えでした。しかし、その後、別々のjar依存関係を作成し、インストールして駆除しました。今それは魅​​力のように機能します(そして私は本当にそれを言うことがうれしいです:))、ありがとう、それはまだ有用な答えです。 –

+0

甘い!ええ、戦争によっては、戦争が爆発し、それがあなたの戦争に含まれるでしょう、もし私が正しく覚えていれば... –

関連する問題