11

Ant で新しいタスクを定義しています。それを jar としてエクスポートし、ビルドファイルに追加しました。

<taskdef classname="X" classpath="Y.jar"/>

問題は、これが実行時に失敗することです。クラスが見つからなかったことがわかります。クラスパスにjarを追加することで修正されます。

私の質問は次のとおりです。クラスパスを変更せずに、Ant ビルドファイルから自分の jar を参照できる方法はありますか?

4

2 に答える 2

11

jar のパスがわかっている場合は、ant スクリプト内で独自のタスクのクラスパスを定義できます。

<taskdef name="myTaskName" classname="com.myorg.myclass">
  <classpath>
    <pathelement location="pathToMyJar.jar"/>
  </classpath>
</taskdef>
于 2010-12-22T16:33:24.157 に答える
1

はい。タスク名と実装クラスのみが表示されている のドキュメントをご覧になったと思います。taskdefただし、taskdefsubclasses 。後者のドキュメントtypedefを見ると、属性もあることがわかります。classpath

ただし、この属性を使用すると、ant スクリプトが特定の環境に関連付けられます。それらはあまり移植性がありません。-lib はるかに優れた方法は、呼び出しオプションを使用してクラスパスを Ant に渡すことです。

于 2010-12-22T16:26:50.723 に答える