2011-11-14 66 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'