2012-01-06 23 views
0

私はそれの中に別のプロジェクト(コア)を持つ巨大なプロジェクト(アプリケーション)を持っています。アプリケーションには、コアと同様に内部に大きなライブラリセットがあります。私はEclipseを使用しているので、Application.jarを作成するためにExport Runnable Jarオプションを使用していますが、コードを実行すると、その中のイメージライブラリに依存するCoreが使用されます。実行可能なjarファイルを調べると、アプリケーションプロジェクトのすべてのライブラリがそこにありますが、コアプロジェクトのjarファイルの中を見るとライブラリはありません。内部jarファイルを持つ内部jarファイルを使用して実行可能なjarを構築するにはどうすればよいですか?

Application 
    - Core.jar 
    + ImageLibrary.jar 
    + OtherLibraries.jar 
    : 
    + OtherLibraries.jar 
    : 

私はプロジェクトを個別にビルドするためにMavenを使用しています。しかし私はMavenの専門家ではなく、短期間しか使用していません。

コアにもライブラリがあるようにアプリケーションをビルドすることはできますか?

ありがとうございます。 アレクセイブルー。

+0

http://stackoverflow.com/questions/5000351/adding-jar-libraries-into-jar-fileとその他の質問はほとんどありません – milan

+0

実行可能なJAR内のマニフェストを確認してください。これはクラスパスを使用する可能性がありますコア内のジャーは含まれていないので無視されます。 –

+0

私はマニフェストファイルをチェックしましたが、コアはそれに含まれていませんでした(うまくいけば、ただ一つのマニフェストファイルしかないと言ってもいいと思います)。しかし、Coreはpom.xmlとの依存関係として宣言されているので、Mavenはそれを受け取ります。 Core内のクラスにアクセスすることができます。Coreが、ClassNotFoundExceptionをスローするイメージライブラリ内のクラスを呼び出すときです。 –

答えて

0

私は最後にこれを考え出しました。プロジェクトをビルドするためにMavenを使用していたときに、Eclipseをビルドパスに更新しなかった。だから私は、コアのディレクトリに私が走った:

# mvn clean install 
# mvn eclipse:eclipse 

イメージライブラリは、私が変更をピックアップしません日食のためのビルド・パスは、そうでない場合は日食に設定されたことを確認しなければならなかったコアの依存関係に加えていたとして。 eclipse:eclipseコマンドは私のためにこれを行いましたが、私はそれが1つのモジュールであるプロジェクトでのみ動作すると思いますが、あなたのpomファイルから依存関係を読み込み、あなたのプロジェクトがそれらを見てアクセスできるようにします。私はうまく働いたRunnableをJARとアプリケーションプロジェクトをエクスポートEclipse内から

# mvn clean install 

その後:

そしてアプリケーションディレクトリに、私はプロジェクトを構築し直します。

これは、同じ問題を抱えている人に役立ちます。

乾杯、 アレクセイブルー。

0

アプリケーション用のMavenビルドでは、コアは依存関係として指定されていませんか?その場合は、すべての依存関係に含める必要があります。おそらく、依存関係自体がMavenの正しいスコープを持っているかどうかをチェックするべきです。

+0

ええ、依存関係は、Mavenがピックアップするpom.xmlファイルにあります。しかし何らかの理由でマニフェストに現れません。 –

+0

マニフェストには含まれていないか、または全体的なjar/war/ear自体にはありませんか? – TrueDub

+0

コアはマニフェストには表示されませんが、Jarファイルは実行可能なJarに表示されます –

関連する問題