我想使用AnsiColorLogger从Ant获取颜色输出。我在Windows上使用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
我知道ANSI颜色至少部分地在Git Bash中起作用,因为ls -ACF --color=auto
之类的命令会产生颜色很好的输出。
Ant的诀窍是什么?
答案 0 :(得分: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 Noob提示: .bashrc
文件(如果存在)存在于您的主目录中。以下是创建/编辑它的方法:
$ cd
$ notepad .bashrc &
答案 1 :(得分:7)
设置环境变量ANT_ARGS可能更容易。 例如把它放在你的.bashrc中:
export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger'