2011-11-14 23 views
8

Tôi muốn sử dụng AnsiColorLogger để lấy lượng màu từ Ant. Tôi đang sử dụng Git Bash trên Windows.Làm thế nào để xem đầu ra Ant màu trong MSYS/Git Bash?

tôi đã cố gắng:

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

nhưng đầu ra của tôi trông giống như:

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 

Tôi biết ANSI màu sắc làm việc, ít nhất là một phần, trong Git Bash vì lệnh như ls -ACF --color=auto sản xuất ra độc đáo màu đầu ra.

Bí quyết của Ant là gì?

Trả lời

8

Sau nhiều lần thử nghiệm Google và thử nghiệm, tôi đã kết hợp một số biến thể thành giải pháp hoạt động tốt cho sự kết hợp đặc biệt của Git Bash, Ant và Windows.

Khởi chạy lại Git Bash sau khi thêm dòng sau vào tập tin .bashrc của bạn:

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

Git Bash Noob Mẹo:.bashrc tập tin, nếu nó tồn tại, sống trong thư mục chính của bạn. Dưới đây là cách tạo/chỉnh sửa:

$ cd 
$ notepad .bashrc & 
+0

Đối với một giải pháp chung cố gắng tạo ra một tập tin mới cant.bat bên cạnh ant.bat của bạn trong thư mục bin kiến ​​của bạn với các nội dung sau: @echo off gọi -logger ant org.apache.tools.ant.listener.AnsiColorLogger% * 2> & 1 | perl -pe "s/(? <= \ e \ [) 2; // g" – jek

+0

Không cần khởi chạy lại bash, sau khi sửa đổi '.bashrc'; chỉ cần nguồn nó, trong shell đang chạy, như thế này: '. ~/.bashrc', (hoặc 'source ~/.bashrc'). –

+0

notepad thực sự là một sự lựa chọn vô cùng của trình soạn thảo để tạo hoặc sửa đổi '.bashrc', (hoặc thực sự * bất kỳ * shell script dành cho tiêu thụ bởi' bash.exe' hoặc 'sh.exe'), bởi vì nó không hiểu kiểu kết thúc dòng chỉ LF, là tiêu chuẩn cho các tập lệnh như vậy. –

6

thậm chí có thể dễ dàng hơn khi chỉ đặt biến môi trường ANT_ARGS. ví dụ: chỉ cần đặt này trong .bashrc của bạn:

export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger' 
Các vấn đề liên quan