ant custom-task,我应该在哪里放置新的类文件?

时间:2012-07-09 06:20:16

标签: ant

编写自己的任务应该是一项简单的任务。 根据文档,您只需要扩展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。 我有所有的环境变量集。

感谢。

1 个答案:

答案 0 :(得分:2)

最好的方法是将它放在一个jar文件中,然后在指向jar的<classpath>内添加<taskdef>

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

您可以将jar放在ant自己的lib目录中,然后您不需要类路径,但是如上所述使用显式的classpath元素意味着您的构建文件将使用标准的未修改的ant安装,因此这是一个好习惯特别是如果你要与其他开发人员合作,那就特别了。