3

これは、StackOverflow での 2 番目の質問です。1枚目はちょっと長かった。今回は要点を切り詰めることができれば幸いです:)

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

また、Eclipse プラグイン プロジェクト P は、Bundle-Classpath を介して通常の A.jar に依存しています。

最後に、A.jar はその POM を含む Maven リポジトリーにあり、B.jar に依存しています。

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

POM ファイルでは、P と R の GroupId は G です。A と B の GroupId は異なりますが、G ではありません。

理由はわかりませんが、copy-dependencies の目標は 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>

Eclipse プラグインの依存関係を除外する方法はありますか?

4

2 に答える 2

2

copy-dependencies ゴールを手動で呼び出そうとしましたか?

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 などの推移的な依存関係はコピーされません。鉱石がコピーされました。

<excludeGroupIds>org.eclipse.equinox</excludeGroupIds> を使用すると、org.eclipse.equinox.common.jar のみがコピーされません。あなたの問題を正しく理解していれば、 <excludeGroupIds> はあなたが望むことをするはずです。groupId に型エラーがありますか?

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

于 2011-07-13T22:00:53.320 に答える
1

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

于 2012-08-17T14:45:29.313 に答える