0

独自のタスクを作成するのは簡単な作業です。ドキュメントによると、必要なのは org.apache.tools.ant.Task を拡張することだけです。このサイトでは、簡単なクラスの例を提供しています。

package com.mydomain;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class MyVeryOwnTask extends Task {
    private String msg;

    // The method executing the task
    public void execute() throws BuildException {
        System.out.println(msg);
    }

    // The setter for the "message" attribute
    public void setMessage(String msg) {
        this.msg = msg;
    }
}

そして、build.xml を使用してそれを使用するには:

<?xml version="1.0"?>

<project name="OwnTaskExample" default="main" basedir=".">
    <taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask"/>

    <target name="main">
        <mytask message="Hello World! MyVeryOwnTask works!"/>
    </target>
</project>

私の質問は、MyVeryOwnTask.java ファイルをどこに置くべきか、.jar ファイルにするべきかということです。なんらかの方法で build.xml ファイルに対して相対的である必要がありますか? com.mydomain.MyVeryOwnTask は、Eclipse の Java プロジェクトのようなファイル構造を表していますか?

私の ant ディレクトリは C:\ant です。私はすべての環境変数を設定しました。

ありがとう。

4

1 に答える 1

2

最良の方法は、それを jar ファイルに入れてから、jar を指す<classpath>内部に a を追加することです。<taskdef>

<taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask">
  <classpath>
    <fileset file="mytask.jar"/>
  </classpath>
</taskdef>

代わりに jar を ant 自身の lib ディレクトリに置くことができます。クラスパスは必要ありませんが、上記のように明示的なクラスパス要素を使用すると、ビルド ファイルが標準の変更されていない ant インストールで機能することを意味するため、導入するのは良い習慣です。特に、他の開発者と共同作業を行う場合は注意してください。

于 2012-07-09T06:48:52.700 に答える