2012-04-27 10 views
4

m2eプラグインでEclipseクラスパスに問題があります。 私は自分のワークスペース内の他のプロジェクトに依存するプロジェクトを持っています。私はこれらの依存関係をスコープ付きの依存関係として追加しました。スコープで次の処理を実行することを期待しています。 コンパイル時に依存関係を指定しますが、実行時クラスパスに対しては除外します。 実行時にこれらのクラスは、フォルダ内のjarからロードする必要があるためです。MavenがスコープとEclipseランタイムクラスパスを提供

しかし、Eclipseのクラスパスには、プロジェクトpomで提供したすべての単一の依存関係が含まれています。 Eclipseは、指定されたスコープを無視しているようです。 実行時クラスパスからそれらを除外する方法はありますか?

よろしくお願いします。

+0

次のStackOverflowスレッドが見つかりました:http://stackoverflow.com/questions/6979513/eclipse-wtp-maven-and-m2eclipse-not-copying-provided-jars –

答えて

0

m2eは正しくここで仕事をしています。私はあなたが 'ランタイム'の意味を誤解していると思います。あなたのプロジェクトは実際にはコンパイルとランタイムの両方で他のプロジェクトに依存しています。また、MavenでビルドするとPOMに反映されます。たとえば、プロジェクトを展開する予定がある場合は、「提供」のスコープのみを使用します。依存関係自体を提供するアプリケーションサーバー。

+0

私がMavenを使用している場合、彼らがプロジェクトpomに依存している限り、依存関係をEclipseクラスパスから除外する方法はありません。私は何をすることができますか? Eclipseのクラスパス全体は、依存関係コンテナのみで構成されているので、クラスパスを手動で編集する必要がありますが、ここではこれがベストプラクティスではないと思います。 – kiwilisk

+0

しかし、どうしてあなたはEclipseクラスパスから依存関係を除外したいのですか? – artbristol

+0

これらのクラスはjarからロードする必要があるためです。それは建築上の問題です。 – kiwilisk

0

私はmaven-war-pluginバージョン2.2で同じ問題に直面しましたが、maven-war-plugin verを使用してください。 2.3問題はなくなった、少なくともmvnパッケージコマンドで。

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 

      <configuration> 
       <webxml>WebContent/WEB-INF/web.xml</webxml> 
       <packagingExcludes>jsp-api-6.0.36.jar,el-api-6.0.36.jar,servlet-api-6.0.36.jar</packagingExcludes>    

      </configuration> 
     </plugin> 
1

あなたは依存関係が「コンパイルのために提供が、実行時のクラスパスから除外」したい場合は、むしろ、スコープを「コンパイル」とMavenのよりも、「提供」依存範囲(Mavenの用語)を使用する必要がありますデフォルトで使用されます。

+0

OPは彼がそれを正確に言った。問題はこれがEclipseの外部でしか機能しないことですが、元の質問ごとにEclipseでの開発中に役立つことはありません。 JDTには異なるクラスパススコープの概念はありません。https://bugs.eclipse.org/bugs/show_bug.cgi?id=376616およびhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=356450を参照してください。 – drrob

関連する問題