3

我正在创建一个自定义 ant 任务,它根据用户收到的参数执行 IO 任务(如文件写入/追加)

我想编写任务,就好像在 ant 任务中使用它的开发人员使用-vor-d标志运行它,会输出更多,

我想知道核心蚂蚁任务是如何做到的。他们是在打印到控制台之前检查输出级别还是只是通过使用java.util.logging.Logger

4

1 回答 1

2

按照本教程

提炼 :

与任务适配器集成

我们班与 Ant 无关。它不扩展超类并且不实现接口。Ant是怎么知道集成的?通过命名约定:我们的类提供了一个带有签名 public void execute() 的方法。此类由 Ant 包装, org.apache.tools.ant.TaskAdapter这是一个任务,并使用反射来设置对项目的引用并调用execute() 方法。

设置对项目的引用?可能很有趣。Project 类为我们提供了一些不错的功能:访问 Ant 的日志记录工具,获取和设置属性等等。所以我们尝试使用该类:

import org.apache.tools.ant.Project;

public class HelloWorld {

    private Project project;

    public void setProject(Project proj) {
        project = proj;
    }

    public void execute() {
        String message = project.getProperty("ant.project.name");
        project.log("Here is project '" + message + "'.", Project.MSG_INFO);
    } }

[...]

于 2013-02-14T09:54:24.453 回答