2011-11-14 95 views
8

我想用AnsiColorLoggerAnt获得彩色输出。我在Windows上使用Git Bash如何在MSYS/Git Bash中看到彩色Ant输出?

我想:

$ 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有什么窍门?

回答

8

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

重新开张的Git猛砸添加以下行到.bashrc文件后:

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

混帐击菜鸟提示:.bashrc文件,如果存在的话,住在你的主目录。以下是如何创建/编辑:

$ cd 
$ notepad .bashrc & 
+0

对于一个通用的解决方案尝试用下面的内容你的蚂蚁bin文件夹内创建ant.bat旁边有一个新的文件cant.bat: 关闭@echo 调用Ant -logger org.apache.tools.ant.listener.AnsiColorLogger%* 2>&1 | perl -pe“s /(?<= \ e \ [)2; // g” – jek

+0

修改'.bashrc'后不需要重新启动bash;只需在运行的shell中获取它,如下所示:'。 〜/ .bashrc',(或'source〜/ .bashrc')。 –

+0

记事本确实是编辑器用于创建或修改'.bashrc',(或确实*任何* shell脚本旨在供bash.exe或sh.exe使用)的糟糕选择,因为它不理解只有LF结束的风格,这是这种脚本的常态。 –

6

它可能只设置环境变量ANT_ARGS更容易。 例如只是把这个在你的.bashrc:

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