2017-02-07 14 views

回答

3

我不確定您是否可以從Gradle腳本強制使用富控制檯,因爲在解釋腳本之前可能會發生檢測。

NativeServices class提供了與控制檯的集成。如果你看看源代碼,有兩個消息在日誌中可能印刷:

Native-platform terminal integration is not available. Continuing with fallback.

Unable to load from native-platform backed ConsoleDetector. Continuing with fallback.

後者可能會給你更多的信息,這是爲什麼。嘗試使用--debug運行gradle腳本。您可能會發現您缺少一個本地庫,它在cygwin中不可用,或者它不在庫路徑中。

我相信它可以在你從命令行指定豐富的控制檯時起作用,因爲即使控制檯沒有指出它支持它們,gradle也會強制顏色。

如果你不在Windows本地命令行或GitBash中使用cygwin控制檯,它是否工作?

有一個解決方法,你可以如何使這項工作。 You can create an alias in cygwin將始終添加--console=rich

如果您使用的是gradle包裝器,您可以編輯gradlew腳本並添加命令行參數。爲了使其自動化,您可以更改wrapper任務以更改doLast部件中的腳本。

+0

感謝您的建議。我從NativeServices獲得這些消息:'初始化本地服務:C:\ home \ strebcri \ .gradle \ native','Native-platform posix文件不可用。繼續回退.' – EndlosSchleife

+0

與Windows控制檯相同,默認情況下默認使用顏色。使用Windows控制檯時,我的init設置也會被忽略,即當我將'init.gradle'更改爲'Plain'時,它將保持着色。 Git bash:默認着色,初始化設置'Plain'也被忽略。將'TERM'設置爲'cygwin'(就像在Git bash中)在cygwin urxvt中沒有幫助。我作爲一個單獨的cygwin用戶不喜歡爲此編輯團隊的gradlew。 – EndlosSchleife

+0

@EndlosSchleife正如我所說的,我不認爲這個設置會改變任何東西,因爲它在控制檯初始化後會發生。 「Native-platform posix文件不可用」只是指出你在cygwin中,而不是在本地Unix/Linux系統中。 – sm4

0

如果你是在Linux/Mac上設置

alias gradle='gradle --console rich' 

~/.bashrc

+0

這將工作,但感覺像一個解決方法。真正的問題是爲什麼Linux上的控制檯檢測不到,以及默認情況下Gradle如何修復以支持Linux上的顏色? – friederbluemle