2017-02-07 11 views
1

Nach dem Vorbild der this answer (was für mich funktioniert, BTW) und die javadocs, habe ich versucht,Wie kann ich "Gradle --console = Rich" als Standard festlegen?

gradle.startParameter.consoleOutput = org.gradle.api.logging.configuration.ConsoleOutput.Rich 

in meinem ~/.gradle/init.gradle. Ich brauche jedoch immer noch --console=rich, um die Farbausgabe zu erhalten. Warum?

Getestet mit Gradle 2.14.1 und 3.2.1.

Terminal ist cygwin urxvt mit TERM-Variable auf rxvt-Unicode-256color festgelegt.

Antwort

3

Ich bin mir nicht sicher, ob Sie die Rich-Konsole aus einem Großbuchstaben-Skript erzwingen können, da die Erkennung wahrscheinlich vor der Interpretation des Skripts erfolgt.

NativeServices class bietet die Integration mit der Konsole. Wenn Sie sich den Quellcode schauen, gibt es zwei Meldungen möglicherweise in Protokoll gedruckt:

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

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

Letzteres könnte Ihnen mehr Informationen, warum. Versuchen Sie, das Gradle-Skript mit --debug auszuführen. Sie werden wahrscheinlich feststellen, dass Ihnen eine native Bibliothek fehlt, die in cygwin nicht verfügbar ist oder nicht, aber nicht im Bibliothekspfad.

Ich glaube, es funktioniert, wenn Sie die Rich-Konsole über die Befehlszeile angeben, weil Gradle die Farben erzwingt, obwohl die Konsole nicht angibt, dass sie unterstützt.

Funktioniert es, wenn Sie nicht die cygwin-Konsole in nativer Windows-Befehlszeile oder vielleicht GitBash verwenden?

Es gibt eine Problemumgehung, wie Sie diese Arbeit machen können. You can create an alias in cygwin, die immer die --console=rich hinzufügen wird.

Wenn Sie den Wrapper verwenden, können Sie das Skript gradlew bearbeiten und den Befehlszeilenparameter hinzufügen. Um es zu automatisieren, können Sie die wrapper Aufgabe ändern, um Ihr Skript im doLast Teil zu ändern.

+0

Danke für die Vorschläge. Ich erhalte diese Nachrichten von NativeServices: 'Initialisierte native Dienste in: C: \ home \ strebcri \ .gradle \ native',' Native-Plattform-Posix-Dateien sind nicht verfügbar. Fortsetzung mit Fallback. – EndlosSchleife

+0

Das gleiche in der Windows-Konsole, die ohnehin standardmäßig Farben verwendet. Mit der Windows-Konsole wird meine Init-Einstellung ebenfalls ignoriert, d. H. Sie bleibt farbig, wenn ich 'init.gradle' in' Plain' ändere. Git bash: default colored, Init-Einstellung "Plain" wird ebenfalls ignoriert. Das Setzen von 'TERM' auf' cygwin' (wie in Git bash) hilft nicht bei cygwin urxvt. Ich als einzelner Cygwin-Benutzer mag es nicht, den Gradlew des Teams dafür zu bearbeiten. – EndlosSchleife

+0

@EndlosSchleife wie gesagt, ich glaube nicht, dass die Einstellung etwas ändert, wie es nach der Initialisierung der Konsole passiert. 'Native-Plattform-Posix-Dateien sind nicht verfügbar' weist nur darauf hin, dass Sie sich in Cygwin befinden und nicht in einem nativen Unix/Linux-System. – sm4

0

Wenn Sie auf Linux/Mac sind gesetzt

alias gradle='gradle --console rich' 

in Ihrem ~/.bashrc.

+0

Das wird funktionieren, aber fühlt sich wie eine Umgehungslösung an.Die eigentliche Frage ist, warum die Konsole unter Linux nicht richtig erkannt wird und wie kann Gradle korrigiert werden, um standardmäßig Farbe auf Linux zu unterstützen? – friederbluemle

Verwandte Themen