Ant 简明教程

Ant - Listeners & Loggers

Ant 允许使用侦听器和记录器监控构建过程。

Listeners

Ant 提供以下事件,可以使用侦听器捕获这些事件。

  1. build started

  2. build finished

  3. target started

  4. target finished

  5. task started

  6. task finished

  7. message logged

可以使用 -listener 参数在命令行上注册自定义侦听器。

Loggers

记录器扩展了侦听器的功能,并添加了以下特性

  1. 可以使用 -logfile 参数将日志信息记录到控制台或文件中

  2. 可以使用诸如 -quiet、-verbose、-debug 之类的日志记录级别进行日志记录

  3. Are emacs-mode aware

Built-in Listeners/loggers

  1. org.apache.tools.ant.DefaultLogger − 除非使用 -logger 命令行切换覆盖,否则隐式使用的记录器。

  2. org.apache.tools.ant.NoBannerLogger − 该记录器会忽略空目标输出的输出。

  3. org.apache.tools.ant.listener.MailLogger − 扩展 DefaultLogger,这样输出仍然以相同方式生成,并且在构建完成后可以发送电子邮件。

  4. org.apache.tools.ant.listener.AnsiColorLogger − 为构建输出添加颜色。

  5. org.apache.tools.ant.listener.Log4jListener − 将事件传递给 Apache Log4j 以实现高度可定制的日志记录。

  6. org.apache.tools.ant.XmlLogger − 将构建信息写入 XML 文件。

  7. org.apache.tools.ant.TimestampedLogger − 打印构建完成的时间

  8. org.apache.tools.ant.listener.BigProjectLogger − 为每个目标打印项目名称

  9. org.apache.tools.ant.listener.SimpleBigProjectLogger − 仅为子项目打印项目名称,否则在 Ant 1.8.1 中如同 NoBannerLogger

  10. org.apache.tools.ant.listener.ProfileLogger − 默认记录器,为每个任务和目标添加开始时间、结束时间和持续时间。

Example

使用以下内容创建 build.xml:

<?xml version="1.0"?>
<project name="sample" basedir="." default="copy">
   <target name="copy">
     <echo>File Copied</echo>
   </target>
</project>

Output

在上述构建文件上运行 Ant 会生成以下输出:

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.listener.TimestampedLogger
Buildfile: F:\tutorialspoint\ant\build.xml

copy:
   [echo] File Copied

BUILD SUCCESSFUL - at 03/12/21, 11:24 AM
Total time: 0 seconds

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
Trying the default build file: build.xml
Buildfile: F:\tutorialspoint\ant\build.xml

现在,你可以检查 build_log.xml 文件是否已使用相关日志创建。