如何默认启用AnsiColorLogger Apache Ant内置记录器,而无需运行手动命令ant -logger org.apache.tools.ant.listener.AnsiColorLogger
或添加环境变量ANT_ARGS
?
我尝试从 ant 构建运行该命令。
构建.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:DEVTESTproj
> ant
Buildfile: D:DEVTESTprojbuild.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:DEVTESTproj
[exec] >
相反,当我运行ant -logger org.apache.tools.ant.listener.AnsiColorLogger
它可以工作。
当你说你直接运行蚂蚁时,它是怎么工作的,你是怎么运行的?从 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>
- 指挥官:https://cmder.net/
- 天鹅座: https://cygwin.com/