2016-09-28 1 views
0

Mir ist aufgefallen, dass die Gradle einen separaten Daemon als das Terminal verwendet, und sie verwendet den Gradlew (Wrapper), um ihre eigene Instanz des Gradle-Daemons auszuführen.Wie führe ich den gleichen Gradle-Daemon für Terminal und Android Studio aus?

Ich bemerkte dies, als ich versuchte, Gradle Aufgabe in Android Studio durch den Befehl gradle --stop zu stoppen. Es besagt, dass kein Daemon läuft. aber wenn ich ./gradlew --stop verwende, stoppt es den Gradle-Task. Es ist, als hätte ich zwei Dämonen, die einen für Android Studio und einen für das Terminal laufen lassen.

Wie kann ich Android Studio dazu bringen, denselben Daemon zu verwenden, den das Terminal verwendet (wenn ich einen Gradle-Task mit dem Befehl gradle build starte, startet das Terminal einen Daemon und verwendet ihn).

Wie kann ich das tun?

+0

'gradlew' ist Wrapper über gradle, die von Android wird empfohlen, wenn Sie gradle verwenden möchten Sie dann die Einstellungen in Android Studio –

+0

ich weiß, das ist meine eine Wrapper-Frage ändern ist, warum Dieser Wrapper startet einen neuen Daemon von derselben Gradle-Version ion, während es zuvor durch Terminal Gradle läuft. –

+0

Laut Gradle 'Jeder Wrapper ist an eine bestimmte Version von Gradle gebunden. Wenn Sie also einen der obigen Befehle für eine bestimmte Gradle-Version ausführen, wird die entsprechende Graddle-Distribution heruntergeladen und zum Ausführen des Builds verwendet. Https: //docs.gradle.org/current/userguide/gradle_wrapper.html –

Antwort

3

Ich fand die Antwort selbst, indem ich viele Wege prüfte.

Der Punkt ist, wenn Sie Gradle Wrapper verwenden wird es einen neuen Daemon für jedes Projekt starten, auch wenn sie mit der gleichen Version sind, können Sie Gradle Wrapper mit einer Änderung in Android Studio beenden, so dass es System-Gradle-Daemon verwendet Wrapper und Ausführen eines neuen Daemon für jedes Projekt)

Sie müssen zu "Einstellungen -> Build, Ausführung, Bereitstellung -> Build-Tools -> Gradle" dann aktivieren Sie das Optionsfeld "Verwenden Sie lokale Gradle-Verteilung" und adressieren die "Gradle Home" -Feld für die Installation des Systems Gradle_Home.

obwohl Sie bereits Gradle auf Ihrem System installiert haben müssen.

für mich sein Verzeichnis ist: „/home/[my_user]/.gradle/wrapper/dists/gradle-3.1-all/ejgglywf033yp6s4x8ahmgm74/gradle-3.1“

der gute Punkt dabei ist, Sie haben Nur eine Instanz von Gradle Daemon (das Starten von Daemons braucht Zeit - besonders, wenn Sie wie ich an mehreren Projekten gleichzeitig arbeiten), und der negative Punkt ist, dass Sie das Verzeichnis manuell ändern müssen, wenn Sie auf die neue Gradle-Version migrieren möchten verteilt.

Ich weiß nicht warum, aber mit dieser Methode synchronisiert die Gradle schneller auf meinem PC. lassen Sie mich wissen, ob es auch schneller in Ihrem Computer ist.

-1

Es war eine Menge Arbeit, aber ich war in der Lage, eine bessere Lösung zu finden, als die lokale gradle Verteilung mit

haben Sie einen Blick auf meinem Bug-Report, wo alles erklärt und hoffentlich wird dies durch Google gelöst werden oder Gradle in einer zukünftigen Version

https://issuetracker.google.com/issues/68374709

Verwandte Themen