2012-04-12 24 views
8

カスタムgeotoolsプラットフォームコンパイル(実際はOSGiベース)では、モジュールをseparetlyでビルドしようとすると、モジュールの1つが正しくコンパイルされます。しかし、私がプロジェクト全体を構築すると、特定のパッケージ/クラスが見つからないという理由でcompileステージに失敗します。扶養家族は大丈夫です。ここmavenは依存していますが、パッケージ/クラスが見つかりません

は、モジュールののpom.xmlからの依存関係です:

<dependency> 
    <groupId>org.picocontainer</groupId> 
    <artifactId>com.springsource.org.picocontainer</artifactId> 
    <version>1.2.0</version> 
</dependency> 

Mavenのビルドエラーの一部:私はのpom.xmlのdependecyを変更した場合

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xs\bindings\XSGroupBinding.java:[19,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\AbstractComplexBinding.java:[20,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\ComplexBinding.java:[21,24] package org.picocontainer does not exist

- それはいくつかの種類で失敗します"バンドルを解決できません"。

プロジェクトは本当に大きく、バンドルと子/親ポムの数です。だから私はここにそれらのすべてを投稿することはできません。 私の質問はこうです:このようなトラブルの原因は何でしょうか?親/子の間の依存関係の葛藤ですか?

+0

このモジュールやプロジェクトのみをビルドするかどうかに関わらず、クラスパスは同じであるため、何らかの原因で親子関係が発生するとは思われません。 '-X'デバッグオプションを使ってビルドを実行しようとすると、いくつかの光を放つかもしれません。 P.S. 'org.picocon tainer'はこれがタイプミスですか? –

+0

はい、それはforamtting関連のタイプミスです、ごめんなさい。 –

答えて

1

実際、ターゲットコンピュータがインターネットへのアクセスが制限されていたため、maven reposへのアクセスが制限されていました。いくつかの黒い魔法では、何らかの種類の「アーティファクトをダウンロードできません」(おそらく、いくつかのjarファイルを手動でインストールするために)で失敗しませんでした。 通常のアクセス権を持つサーバーを取得してミラーとして設定し、ミラーを使用するようにMavenを設定し、問題を解決しました。 私の問題に参加してくれてありがとう@サミュエルが、問題の説明から問題を特定することはできませんでした。

5

私はそれを解決するために2つのことを見ることができます。

まず、ローカル.m2リポジトリに移動すると、他のバージョンのlibがあるかどうかがわかります(ただし、異なるバージョンの名前が異なる場合があります。そのため、別のフォルダに保存されます。

また、IDEで使用されているACTUAL依存関係、またはコマンドライン(mvn dependency:tree)を確認することもできます。 一貫性を保つために推移的な依存関係を除外する必要があるかもしれません。私はEclipseプラグインを使っています。

最後に、使用する依存関係がわかっている場合は、jarファイルを開き、そこに存在すると予想されるものがあるかどうかを確認することができます。

+0

クイック返信をありがとう。あなたが提案したように、私は 'mvn dependency:tree'チェックを行いました。それは何も間違っていませんでした。 - BUILD SUCESSFUL。 フォルダ '.m2/repository 'のキーワード' picocontainer'で検索すると、必要なパッケージとクラスがすべて含まれています。 –

+0

あなたのIDEはコードを正常にコンパイルしますか?どのIDEを使用していますか? –

0

私は同じ問題がありました。私の問題は、依存関係がテストに設定されていることでした。だから私はexec:javaを発行したとき、スコープ外だったのでクラスを見つけることができませんでした。

関連する問題