Ant で新しいタスクを定義しています。それを jar としてエクスポートし、ビルドファイルに追加しました。
<taskdef classname="X" classpath="Y.jar"/>
問題は、これが実行時に失敗することです。クラスが見つからなかったことがわかります。クラスパスにjarを追加することで修正されます。
私の質問は次のとおりです。クラスパスを変更せずに、Ant ビルドファイルから自分の jar を参照できる方法はありますか?
jar のパスがわかっている場合は、ant スクリプト内で独自のタスクのクラスパスを定義できます。
<taskdef name="myTaskName" classname="com.myorg.myclass">
<classpath>
<pathelement location="pathToMyJar.jar"/>
</classpath>
</taskdef>
はい。タスク名と実装クラスのみが表示されている のドキュメントをご覧になったと思います。taskdef
ただし、taskdef
subclasses 。後者のドキュメントtypedef
を見ると、属性もあることがわかります。classpath
ただし、この属性を使用すると、ant スクリプトが特定の環境に関連付けられます。それらはあまり移植性がありません。-lib
はるかに優れた方法は、呼び出しオプションを使用してクラスパスを Ant に渡すことです。