2

Ant スクリプトを使用するレガシー プロジェクトで「クリーンな Maven」セットアップを作成しようとしています。私はantについてあまり知らないので、私の質問は素朴に見えるかもしれません.

ほぼ完了しましたが、クラスパスの冗長性が原因で配信 ant スクリプトが失敗しています。ビルドを理解していれば、これらの行は「提供された」スコープ内のすべてのライブラリをクラスパスに追加する必要があります。

<artifact:dependencies pathid="dependency.classpath" scopes="provided">
    <pom file="./pom.xml"/>
</artifact:dependencies>

そして、これ:

<path id="completecp">
    <fileset dir="${ant.home}/lib">
        <include name="*.jar" />
    </fileset>
    <path refid="dependency.classpath" />
</path>

これらの依存関係を ant.home ディレクトリのライブラリに追加します。

問題は、変更できない親 pom に依存する maven pom を使用しているため、クラスパスに 3 つの異なるバージョンの Ant が存在することです。POM からの 2 つ (1.5 と 1.7. 1) および Eclipse (1.8.2) からの 1 つ。私は(必死に!)いくつかのMaven除外を追加しようとしましたが、惨めに失敗しました。

だから私は考えました:おそらくAntクラスパスからjarを除外する方法があるでしょう。私は入れてみました:

<exclude name="*ant\1.7.1\ant-1.7.1.jar"/>
<exclude name="*ant\1.5\ant-1.5.jar"/>

ファイルセット部分にありますが、機能しません。それらの冗長な jar を除外する方法はありますか?

4

2 に答える 2

2

この方法を試してください:-

<exclude name="**/ant/1.7.1/ant-1.7.1.jar"/>
<exclude name="**/ant/1.5/ant-1.5.jar"/> 
于 2012-04-18T08:53:08.583 に答える
0

バックスラッシュの代わりにスラッシュを使用してみてください。

<exclude name="*ant/1.7.1/ant-1.7.1.jar"/>

于 2012-04-18T08:31:50.197 に答える