如何在MSYS/Git Bash中查看Ant输出的颜色?

8
我希望使用AnsiColorLogger在Windows上从Ant中获得彩色输出。我正在使用Git Bash

我尝试过:

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

但是我的输出结果看起来像这样:
Buildfile: c:\foo\build.xml
←[2;36m    [junit] Testsuite: org.foo.BarTest←[m
←[2;36m    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.188 sec←[m
←[2;36m    [junit] ←[m
←[2;36m    [junit] Testcase: testInherits took 0.175 sec←[m
←[2;36m    [junit]      FAILED←[m
←[2;36m    [junit] subdir not child←[m
←[2;36m    [junit] junit.framework.AssertionFailedError: subdir not child←[m
←[2;36m    [junit]      at org.foo.BarTest.testInherits(BarTest.java:61)←[m
←[2;36m    [junit] ←[m
←[2;31m    [junit] Test org.foo.BarTest FAILED←[m

我知道在Git Bash中ANSI颜色部分地起作用,因为像ls -ACF --color=auto这样的命令会产生漂亮的彩色输出。

那么在Ant中有什么诀窍呢?

2个回答

8

经过大量的搜索和实验,我将几种变体组合成了一个解决方案,适用于Git Bash、Ant和Windows的特定组合。

在您的.bashrc文件中添加以下行后,请重新启动Git Bash:

alias ant='cant'
function cant {
  "ant" -logger org.apache.tools.ant.listener.AnsiColorLogger "$@" \
      2>&1 | perl -pe 's/(?<=\e\[)2;//g'
}

Git Bash新手提示: 如果存在.bashrc文件,则该文件位于您的主目录中。以下是创建/编辑它的步骤:

$ cd
$ notepad .bashrc &

为了得到一个通用的解决方案,请在您的ants bin文件夹中ant.bat旁边创建一个新文件cant.bat,并将以下内容添加进去: @echo off call ant -logger org.apache.tools.ant.listener.AnsiColorLogger %* 2>&1 | perl -pe "s/(?<=\e[)2;//g" - jek
不需要重新启动bash,在修改了.bashrc文件后,只需在运行的shell中执行以下命令进行源码加载:. ~/.bashrc(或者source ~/.bashrc)。 - Keith Marshall
记事本真的是创建或修改 .bashrc(或者 任何 旨在供 bash.exesh.exe 使用的 shell 脚本)的可怕编辑器选择,因为它不理解仅以 LF 结尾的行结束风格,而这是这类脚本的常规。 - Keith Marshall

7

设置环境变量ANT_ARGS可能会更容易。 例如,只需将以下内容放入您的.bashrc文件中:

export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接