7

antでクラスパスの順序を設定するにはどうすればよいですか?

具体的には、antビルドを実行しようとすると、jreにある同じクラスではなく、jar内のクラス(jaxws-api.jar)を取得する必要があります。私は現在、これらのjarを明示的に含めるようにクラスパスを設定していますが、それでも最初にjreを取得するようです。私が探しているのは、「ビルド構成」メニューの下のeclipseでの注文/エクスポートに相当するタイプです。

編集:私はより明確になります。CXF2.1.3で生成されたクラスがいくつかあります。それらはjavax.xml.ws.Service#getPort(QName、Class、WebServiceFeature ...)を呼び出します。私はJavaバージョン1.6.02を使用しています。このメソッドは、そのバージョンのそのクラスには存在しません。ただし、jaxwsバージョンのクラス(およびそれ以降のバージョンのJREクラス)には存在します。antビルドを実行しようとすると、jaxwsバージョンの前に常にJREクラスが最初に取得されます。これにより、コンパイルが失敗します。クラスパスを変更してJREを最後に配置するにはどうすればよいですか?

JREのバージョンを変更することはできないので、それが唯一の可能なものでない限り、修正として提案しないでください。

4

3 に答える 3

8

JavacまたはJava Ant タスクbootclasspathで設定を使用する必要があるようです。

ant -vAnt ビルドの詳細な出力を取得するためにいつでも実行できます。

于 2009-06-02T14:44:15.497 に答える
3

Ant クラスパス内の Jar は、宣言した順序で配置されます。

于 2009-06-02T14:08:47.160 に答える
3

Google Web ツールキットとサーブレット 3.0 API ファイルで同じ問題が発生しました。サーブレット API jar が GWT ライブラリ jar の前にあることを確認する必要がありました。これがうまくいったものです:

<path id="classpath">
        <filelist>
            <file name="${build.input}/__lib__/servlet-api.jar"/>
        </filelist>
        <fileset dir="${build.input}/__lib__">
            <include name="*.jar" />
        </fileset>
        <fileset dir="${build.input}/WEB-INF/lib">
            <include name="*.jar" />
        </fileset>
    </path>

最初にする必要があるjarがファイルリストの最初にリストされていることに注意してください。次に、他のディレクトリからjarを追加できます。受け入れられた回答で bootclasspath を試しましたが、うまくいきませんでした。

于 2012-12-07T23:12:54.733 に答える