2012-06-18 10 views
6

Tomcat 6とEclipseで動的Webアプリケーションをデプロイするときに使用しているサードパーティのライブラリ(JARファイル)を提供する際に問題があります。Tomcatを使用したEclipse Web-Appのデプロイ:複数のプロジェクトの依存関係を提供しますか?

Webアプリケーションのプロジェクトが直接これらのJARに依存するセットアップでこれを行う方法を知っていることに注意してください。

しかし、私のセットアップでは、私は2つのEclipseプロジェクトがあります。

  • コアをは、a.jarクラスライブラリであると依存、言うことができます。
  • ウェブはウェブアプリケーションであり、コアに依存します。 ウェブのプロジェクト設定で

展開総会カテゴリに、私はコアを追加しているので、Eclipseの(またはTomcatの - 私はここに責任俳優が誰であるかはかなりよく分からない)があります私のWebアプリケーションのlibsディレクトリにcore.jarを入れてください。

問題がある:私は、Webアプリケーションを実行しようとすると、コアa.jarからクラスにアクセスしたときNoClassDefFoundErrorがスローされます。私はこれについて何をすべきですか?それはコアプロジェクトが依存するものウェブプロジェクトに無関連である必要がありますので、私は、私のWebアプリケーションの展開組立設定ページにa.jarを置くことは適切なソリューションであるとは思いません。

基本的には、コアの依存関係をcore.jarに「埋め込む」ようにEclipse(Tomcat?)を設定する方法を探しています。この問題は、ウェブプロジェクトを展開すると、core.jarが自動的に生成されるという問題があります。

ヘルプは大歓迎です。 ありがとうございます!

答えて

8

まあ、私は自分自身で答えを見つけました。将来的にはこれを読んで人のために

私はmy original messageで導入されたセマンティクス使用して、ステップごとに説明します:あなたのコアプロジェクトのプロパティページを開き、「ライブラリ」タブに移動し、

ファーストを「Javaのビルド・パス」の設定で:

enter image description here

あなたのクラスライブラリa.jarを追加してください、あなたのコアプロジェクトは、広告」を介して、依存しますd JARs ... 'と表示されます。次に、[注文とエクスポート]タブに進み、エクスポートするためにちょうど追加されたa.jarを有効にします。

enter image description here

次に「展開アセンブリ」設定に移動し、また、上の最初のクリックしてここにa.jarを追加する「追加...」、そして、「Javaのビルド・パスのエントリ」にし、最終的にa.jarを選択します。 a.jarのための配備パスとして「../」を入力してください:

enter image description here

今、あなたはあなたのコアプロジェクトで行われます。今すぐあなたのウェブプロジェクトのためのJavaのビルド・パス」設定の「プロジェクト」のページを開き、[追加...]をクリックして、あなたのコアプロジェクトを追加します。最後に

enter image description here

、ナビゲート「展開アセンブリ」設定ページに、Enterキーを押して「追加...」、そして「プロジェクト」を取ると、次の画面でごコアプロジェクトを選択します。

enter image description here

あなたは終わった。 コア依存関係をウェブプロジェクトに追加する必要はありません。

0

私が知っている限り、日食はあなたのためにそれをしません。プロジェクトの依存関係はコンパイル時のものです。プロジェクト間にまたがるランタイム依存関係は、あなたが処理する必要があります。 1つのトリックを使用してユーザーライブラリを作成できます。環境設定 - > Java - >ビルドパス - >ユーザーライブラリに移動します。新しいユーザーライブラリを作成します。あなたの 'コア'プロジェクトが依存するすべてのjarファイルを追加します。それを「コア」プロジェクトと「Web」プロジェクトの両方に依存して追加します。 >ビルドパス - - >設定がパスを構築 - >ライブラリ]タブ - > [ライブラリを追加...

希望これは私が自動的にjarをコンパイルしますMavenを使用することをお勧めし

0

を助け,,プロジェクト上で右クリックをすることを行うために、あなたとEclipseのファイルはMavenでもうまく機能します。

関連する問題