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>内部添加一个:<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 回答