2011-07-07 12 views
3

これはStackOverflowの私の2番目の質問です。最初はちょっとだった。私はこの時点で私はポイントにカットすることを願っています:)コピー依存関係のときにeclipse-plugin依存関係を除外する方法は?

EclipseプラグインプロジェクトPは、Require-Bundle経由でプラグインRに依存しています。 Eclipseワークスペースには2つのプロジェクトがあります。

また、EclipseプラグインプロジェクトPは、バンドルクラスパス経由で通常のA.jarに依存しています。

最後に、A.jarはPOMとのmavenリポジトリにあり、B.jarに依存します。

A.jarとB.jarをPのローカルlibフォルダにコピーする必要がありますが、R.jarはコピーする必要はありません。 POMで

は、PのグループIDをファイルし、RはAとBのG. GroupIdsであるG.

異なっているではなく、私は理由を理解するが、目標はR.を探してコピーの依存関係はありませんjarは、それが見つからないときに失敗し、A.jarまたはB.jarをコピーしません。私はexcludeGroupIdsを使用しようとしたが成功することはできません。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <configuration> 
     <excludeGroupIds>G</excludeGroupIds> 
     <outputDirectory>lib</outputDirectory> 
     <overWriteReleases>true</overWriteReleases> 
     <overWriteSnapshots>true</overWriteSnapshots> 
     <overWriteIfNewer>true</overWriteIfNewer> 
     <stripVersion>true</stripVersion> 
    </configuration> 
    <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
<dependencies> 
    <dependency> 
     <groupId>X</groupId> 
     <artifactId>A</artifactId> 
     <version>SNAPSHOT</version> 
    </dependency> 
</dependencies> 

は日食 - プラグインの依存関係を排除する方法はありますか?

答えて

2

コピー依存関係のゴールを手で呼び出そうとしましたか?

mvn dependency:copy-dependencies 

あなたの設定で小さなmaven jarプロジェクトを作成しました。私のプロジェクトは依存関係としてorg.eclipse.core.jobsを持っています。 <excludeGroupIds> org.eclipse.core </excludeGroupIds > org.eclipse.core.jobs.jarはコピーされませんが、org.eclipse.equinox.common.jarやorg.eclipse.osgi.jarのような推移的な依存関係はコピーされません鉱石をコピーした。

私だけorg.eclipse.equinox.common.jarがコピーされていない<excludeGroupIds> org.eclipse.equinox </excludeGroupIds >を使用しています。だから私はあなたの問題を理解した場合<excludeGroupIds>あなたが欲しいものを行う必要があります。おそらくあなたのグループIDにタイプエラーがありますか?

私はこれをしようとしたとき、私は一つの問題を持っていた:私はあなたの<excludeGroupIds> G </excludeGroupIds >を貼り付けたので、私の最初の試みは間違っていました。 2回目の試行は期待どおりに実行されましたが、mvn cleanがlibフォルダを削除しないので、最初は間違っていると思いました。

+0

ありがとうございます。私はに入れました。今、ローカル依存関係に移行依存関係をコピーすることができます。しかし、org.eclipse。*。jarと一緒に。それらを排除する方法はありますか?依存関係を私のローカルlibフォルダに手動でコピーしたいので、私は検証ステップを選択しました。後で検証ステップをキャンセルしようとします – lembas

+0

たとえば、 org.eclipse.coreを除外してorg.eclipse.core.jobs.jarを除外しようとしましたが、動作しません。それでも、org.eclipse.core.jobs.jarはローカルのlibフォルダにコピーされます。 – lembas

+0

申し訳ありませんレムバス、私は完全に間違っていたので、私の答えを編集しなければなりませんでした。設定が実行タグの外にある場合は、すべての実行でこの設定が使用されていることを意味します。私の新しい答えがあなたに役立つことを願っています。たとえあなたが正しい方法でいるというヒントしか与えていないとしても。悲しいことに私はあなたの状況ではうまくいかないと答えることはできません。 – Thomas

1

<excludeScope>provided</excludeScope>maven-dependency-plugin構成に追加して、Tychoによって生成された依存関係を除外します。

関連する問題