【问题标题】:How to enable AnsiColorLogger by default in Apache Ant?如何在 Apache Ant 中默认启用 AnsiColorLogger?
【发布时间】:2016-05-27 23:35:54
【问题描述】:

如何在不手动运行命令ant -logger org.apache.tools.ant.listener.AnsiColorLogger或添加环境变量ANT_ARGS的情况下默认启用AnsiColorLoggerApache Ant内置logger


我尝试从 ant 构建运行命令。
build.xml

<exec dir="${sdk.dir}" executable="cmd">
    <arg value="${sdk.dir}" />
    <arg value="AnsiColorLogger.cmd" />
</exec>

AnsiColorLogger.cmd

START -logger org.apache.tools.ant.listener.AnsiColorLogger

然后我运行ant 命令来编译我的项目,但是日志没有着色。

Fuiba@FUIBA D:\DEV\TEST\proj
> ant
Buildfile: D:\DEV\TEST\proj\build.xml
Trying to override old definition of task for
     [exec] Microsoft Windows [Versione 10.0.10240]
     [exec] (c) 2015 Microsoft Corporation. Tutti i diritti sono riservati.
     [exec]
     [exec] Fuiba@FUIBA D:\DEV\TEST\proj
     [exec] >

当我运行ant -logger org.apache.tools.ant.listener.AnsiColorLogger 时,它可以工作。

【问题讨论】:

标签: apache logging ant


【解决方案1】:

当你说你直接运行 ant 时它可以工作,你是如何运行它的?从 ant 自己的文档来看,它不支持 Windows NT 衍生产品(包括 Windows 8、10 等)。从您的输出来看,您似乎是在 Windows 上运行,因此请详细了解如何重现此问题。

来自蚂蚁的手册:

注意:它不适用于 WinNT 和后续版本,即使使用加载了 ANSI.SYS 的 COMMAND.COM 控制台也是如此。

来源:https://ant.apache.org/manual/index.html

如果您在支持 ANSI 转义序列的终端(如 Cygwin 的 MinTTY 或 CMDER)中运行 ant,请尝试将 env 参数传递给您的 exec 任务:

<exec dir="${sdk.dir}" executable="cmd">
    <env key="ANT_ARGS" value="-logger org.apache.tools.ant.listener.AnsiColorLogger"/>
    <arg value="${sdk.dir}" />
    <arg value="AnsiColorLogger.cmd" />
</exec>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多