2016-11-18 13 views
-2

私はMavenを使い始めました。 私はMavenプロジェクトを持っています。 mvn clean -e installを使用してexecuteを作成すると、プロジェクトの実行可能なjar(commounutil.jar)がターゲットフォルダに作成されます。 EclipseにMavenベースのプロジェクトではない別のプロジェクト(project2)がありません。 Project2は、commounutil.jarのフィーチャとクラスを使用します。 Javaのパスを使用してeclipseで手動で実行可能なjar commounutil.jarを手動で追加するか、外部jarを追加します。 しかし、このjarファイルを追加しても、私のプロジェクトにはlog4jに関連するいくつかのエラーがあります。 私がcommounutilをビルドすると、log4jの依存関係がすでに追加されています。 まだコンパイル時エラーが出ています。 どこに間違っているのか教えてください。Maven Jarの依存関係は自動的には発生しません。

+1

エラーは何ですか? –

+0

log4jのクラスを取得できません – Sachin

+0

エラー: インポートorg.apacheを解決できません – Sachin

答えて

1

Eclipseクラスパスにlog4jを追加します。 Commonutils.jarは、mavenによって宣言されたモジュール性をたどる場合、共通のutilsクラスのみを提供し、その依存関係に関連するクラスは提供しません。

2番目のプロジェクトをmavenプロジェクトに更新することを検討する必要があります。

+0

私の最初のプロジェクトをビルドするときに、依存関係はすでに存在していました。依存関係がすでに存在していたのだろうか?プロジェクト1によって作成されたターゲットjarは、その依存関係にautomaticallを含めるべきです。私はここで正しいですか? – Sachin

+0

depはmavenリポジトリにあります。したがって、クラスパスにはありません。 2番目のプロジェクトをビルドしようとすると、Eclipseはクラスパスで使用できるクラスにのみアクセスします。 –

+0

クラスパスにcommonUtils.jarを追加していることに同意します。これを行うと、CommonUtils.jarにあるクラスが、Eclipseでプロジェクトをビルドするときにコンパイル時に利用できるようになりました。さて、このjarを開いてクラスディレクトリを調べると、log4jに関連する.classは見つかりません。 –

関連する問題