我正在创建一个自定义ant任务,它根据用户收到的参数(如文件写入/附加)执行IO任务
我想写这个任务,这样如果在ant任务中使用它的开发人员用-v
或-d
标志运行它,就会输出更多的
我想知道蚂蚁的核心任务是如何完成的。他们是在打印到控制台之前检查输出级别,还是只是通过使用java.util.logging.Logger
来完成
遵循本教程。
摘录:
与TaskAdapter 集成
我们班与蚂蚁无关。它没有扩展超类,并且不实现任何接口。Ant是如何知道集成的?Via名称约定:我们的类提供了一个具有签名public void的方法execute()。这个类由Ant的
org.apache.tools.ant.TaskAdapter
,它是一个使用反射的任务用于设置对项目的引用并调用execute()
方法是否设置对项目的引用?可能很有趣。项目类为我们提供了一些不错的功能:访问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); } }
[…]