dram.me

程序化使用Ant系统

Ant作为早期的Java编译管理系统,一般是以命令行结合XML描述文件(build.xml)的方式使用。实际上Ant有提供一套丰富的API接口,可以实现程序化调用。

本文主要介绍Ant中较为核心的几个接口,作为入门指引。

项目(project)

Ant以项目为单位进行编译任务的组织,一个project对应于一份build.xml描述文件。和项目相关的接口,重要的包括:

  • Project.addBuildListener - 结合org.apache.tools.ant.DefaultLogger实现日志记录(DefaultLoggersetOutputPrintStreamsetErrorPrintStream接口配置日志输出流,setMessageOutputLevel接口调整日志输出等级);
  • ProjectHelper.configureProject - 加载build.xml文件;
  • Project.setProperty - 设置项目编译运行时属性;

至于其他接口,可以查看这里详细的说明。

注意:如果需要多次执行同一project中的task,每次都需要对project重新实例化,否则可能出现冲突。

任务(task)

在完成project初始化后,就可以使用Project.executeTargetProject.executeTargets接口执行其中的一个或多个特定任务了。

参考

以下是一些应用了Ant的API接口的项目,可以作为参考: