it-swarm.com.de

Wie lösche ich den Gradle Cache?

Ich versuche, Android Studio zu verwenden, und wenn ich es zum ersten Mal hochfahre, dauert das Kompilieren etwa 45 Minuten ... Wenn ich die Anwendung nicht beenden, ist das in Ordnung - jedes nachfolgende Kompilieren/Ausführen der App wird dauern wie 45 Sekunden.

Ich habe versucht, einige meiner Caches zu überprüfen: In meinem Home-Verzeichnis gibt es einen .gradle/caches-Ordner, der ungefähr 123 MB groß ist.

Es gibt auch einen .gradle-Ordner in meinem Projektordner ... eine der taskArtifacts hatte etwa 200 MB. Ich habe Angst, sie beide zufällig zu treffen. Welche Teile der Ordner können sicher gelöscht werden?

Gibt es eine bessere Erklärung dafür, warum mein Android Studio nach dem ersten Laden der Anwendung die Aufgabe gradle assemble für immer ausführt?

Muss ich auch den Intellij-Cache leeren?

185
David T.

Sie können den gesamten .gradle-Ordner im Projektverzeichnis löschen. Es wird jedes Mal neu erstellt, wenn die Aufgaben ausgeführt werden. Dasselbe gilt für .gradle im Home-Verzeichnis. Es wird auch neu erstellt, aber die gesamten Abhängigkeiten müssen erneut heruntergeladen werden - es ist ziemlich zeitaufwändig.

Wie ich an verschiedenen Stellen über das Web Gradle für Android-Entwicklung sehe, ist das ziemlich langsam und die Leute beschweren sich darüber. Keine Ahnung, was genau der Grund ist - so funktioniert es.

Ich denke nicht, dass eine geringe Leistung auf große Ordner zurückzuführen ist. Eigentlich helfen sie dabei, schneller zu werden. </ S>

Wie @ Bradford20000 in den Kommentaren dargelegt hat, könnten sich unter gradle.properties eine $HOME/.gradle-Datei sowie globale Gradle-Skripts befinden. In diesem Fall muss beim Löschen des Inhalts dieses Verzeichnisses besonderes Augenmerk beachtet werden. Das Cache-Verzeichnis enthält den Build-Cache Gradle. Wenn Sie also einen Fehler haben, können Sie das löschen. Es ist auf .gradle/caches

210
Opal

Gradle Cache liegt bei 

  • Unter Windows: %USER_HOME%\.gradle/caches/
  • Auf Mac/Unix: $HOME/.gradle/caches/

Sie können zu diesem Verzeichnis navigieren und es manuell löschen oder ausführen 

rm -rf $HOME/.gradle/caches/

auf Unix-System. Führen Sie diesen Befehl aus, um auch Abhängigkeiten herunterzuladen.

Update 2: _ ​​ Löschen Sie den Android Build-Cache des aktuellen Projekts

Hinweis: Android Studio's File | Caches ungültig machen/Restart löscht den Android-Build-Cache nicht.

Unter Windows:

gradlew cleanBuildCache

Auf Mac oder Linux:

./gradlew cleanBuildCache
221
Bao Le

Neueste Lösung mit Gradle-Task 

cleanBuildCache

verfügbar über Android-Plugin für Gradle, Version 2.3.0 (Februar 2017)

Abhängigkeiten: 

  1. Grad 3.3 oder höher.
  2. Build Tools 25.0.0 oder höher.

mehr bei:

https://developer.Android.com/studio/build/build-cache.html#clear_the_build_cache

hintergrund 

Cache erstellen:

speichert bestimmte Ausgaben, die das Android-Plugin beim Erstellen Ihres Projekts generiert (z. B. unverpackte AARs und vorab entfernte Abhängigkeiten). Ihre Clean Builds sind während der Verwendung des Caches viel schneller, da das Buildsystem diese zwischengespeicherten Dateien bei nachfolgenden Builds einfach wiederverwenden kann, anstatt sie neu zu erstellen. Projekte, die das Android-Plugin 2.3.0 und höher verwenden, verwenden standardmäßig den Build-Cache. Weitere Informationen finden Sie unter Verbessern der Build-Geschwindigkeit mit Build-Cache.

Hinweis: Die cleanBuildCache-Task ist nicht verfügbar, wenn Sie den Build-Cache deaktivieren.

Verwendungszweck:

fenster 

gradlew cleanBuildCache

linux/Mac

gradle cleanBuildCache

Android Studio/IntelliJ

gradle tab (default on right) select and run the task or add it via the configuration window 

** gradle/gradlew sind systemspezifische Dateien, die Skripts enthalten- Bitte lesen Sie die Systeminformationen, wie Sie das Skript ausführen 

  1. linux - https://www.cyberciti.biz/faq/howto-run-a-script-in-linux/
  2. windows - https://technet.Microsoft.com/en-us/library/bb613481(v=vs.85).aspx
  3. mac https://developer.Apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html
44
ceph3us

Seien Sie vorsichtig mit Gradle Daemon, Sie müssen ihn stoppen, bevor Sie Gradle löschen und erneut ausführen.

Stoppen Sie den ersten Daemon:

./gradlew --stop

Cache leeren mit:

rm -rf ~/.gradle/caches /

Führen Sie Ihre Zusammenstellung erneut aus

3
rresino

Der Gradle-Daemon erstellt außerdem viele große Textdateien für jedes einzelne Build-Protokoll. Sie sind hier gespeichert:

~/.gradle/daemon/X.X/daemon-XXXX.out.log

"X.X" ist die verwendete Gradle-Version wie "4.4" und "XXXX" sind nur Zufallszahlen wie "1234".

Die Gesamtgröße kann in wenigen Monaten auf mehrere hundert MB anwachsen. Es gibt keine Möglichkeit, die Protokollierung zu deaktivieren. Die Dateien werden nicht automatisch gelöscht und müssen nicht wirklich aufbewahrt werden.

Sie können jedoch eine small Gradle-Aufgabe erstellen, um sie automatisch zu löschen und viel Speicherplatz freizugeben:

Fügen Sie dies Ihrem app/build.gradle hinzu:

Android {

    buildTypes {
        ...
    }

    // Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
    // Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
    def gradle = project.getGradle()
    new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each {
        if (it.getName().endsWith('.out.log')) {
            // println("Deleting gradle log file: $it") // Optional debug output
            it.delete()
        }
    }
}

Um zu sehen, welche Dateien gelöscht werden, können Sie die Debug-Ausgabe in Android Studio -> Ansicht -> Tool Windows -> Erstellen anzeigen. Drücken Sie dann die Schaltfläche "Ansicht umschalten" in diesem Fenster, um die Textausgabe anzuzeigen.

Beachten Sie, dass ein Gradle Sync oder ein beliebiger Gradle Build das Löschen der Datei auslöst.

Besser ist es, die Dateien automatisch in den Papierkorb zu verschieben oder sie zuerst in den Papierkorb zu kopieren. Aber ich weiß nicht, wie ich das machen soll.

2
Mr-IDE

hier scheint es falsche Informationen zu geben. Einige Personen berichten, wie der Builder-Cache von Android geleert werden soll (mit Task cleanBuildCache), scheinen jedoch nicht zu erkennen, dass der Cache von Gradles Build-Cache AFAIK unabhängig ist.

meines Wissens ist der Cache von Android älter als der von Gradle (und inspiriert von ihm), aber ich könnte mich irren. Ich weiß nicht, ob der Builder Android so aktualisiert wird/wurde, dass er Gradles Cache verwendet und seinen eigenen zurückzieht.

0
Lanchon

Befehl: rm -rf ~/.gradle/caches/

0
Zinan Xing