4

EclipseRCPアプリケーションを開発しています。リビジョン管理システムにはSVNを使用することにしました。日食環境で日食製品をエクスポートすることができます。すべてがうまくいきました。

だが、

一部のプラグインは、manifest.mfでbundle-classpathを使用して通常のJavajarに依存しています。これまで、これらのjarファイルをSVNリポジトリにコミットしていました。jarをsvnにコミットするのは間違っていると「聞いた」ので、maven-tychoを使用して、この目的のためにそれらのjarをmavenリポジトリに配置する必要があります。

そこで、jarをSVNリポジトリからMavenリポジトリに移動しました。次に、新しい開発環境をセットアップしたかったのですが、svnからプロジェクトをチェックアウトしましたが、jarがないため、コンパイルエラーが発生しました。

m2eclipseを使用し、新しく作成したpom.xmlファイルですべての依存関係を定義しました。maven-dependency-pluginのコピー目標とすべてのjarを一覧表示してから、mvn validateを実行して、jarをlibフォルダーに入れます。それはうまくいきましたが、私には少し醜いようです。私のプラグインのpom.xmlは、すべての依存関係を2回定義しているように見えるためです。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>copy-bundle-classpath-libs</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>lib</outputDirectory>
                        <overWriteReleases>true</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <stripVersion>true</stripVersion>
                        <artifactItems>
                            <artifactItem>
                                <groupId>MyGroup</groupId>
                                <artifactId>MyJar</artifactId>
                                <version>SNAPSHOT</version>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>MyGroup</groupId>
        <artifactId>MyJar</artifactId>
        <version>SNAPSHOT</version>
        <type>pom</type>
        <scope>compile</scope>
    </dependency>
</dependencies>

これを取り除く方法はありますか?

さらに、MyJar.pomに他の依存関係がある場合は、ローカルライブラリにもそれらが必要です。これらの推移的な依存関係をローカルのlibフォルダーにコピーする方法はありますか?

コピー依存関係の目標を試しましたが、プラグインが依存している他のプラグインのjarを見つけようとします。通常のjarファイルをローカルライブラリにコピーする必要があります。私の他のプラグインは、プラグインプロジェクトとしてすべてのソースコードと並んですでに存在しています。私は彼らの瓶を必要としません。それらを除外できますか?私はこれを試しましたが成功しませんでした:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <configuration>
                <excludeGroupIds>MyGroup</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>

ありがとう

4

1 に答える 1

1

推移的な依存関係をコピーするかどうかを決定する必要があります。

maven-dependency-plugin [1] は、推移的な依存関係 ("copy-dependencies" ゴール、pom でのみ依存関係セクションに依存関係を追加する必要がある) または推移的な依存関係のない特定のアーティファクト ("copy" ゴール、アーティファクトを追加する必要がある) のいずれかをコピーできます。プラグインの構成セクションのみ)。コピー依存関係を使用する場合、推移的な依存関係チェーンから特定の artifactId を含めたり除外したりすることもできます。[2] を参照してください。

--

[1] http://maven.apache.org/plugins/maven-dependency-plugin/

[2] http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html

于 2011-07-07T09:08:48.657 に答える