7

Ich arbeite mit SNAPSHOT-Versionen einiger Bibliotheken in Android Studio.Vermeiden Sie Gradle-Cache für die Snapshot-Versionen

Das Problem ist, dass Gradle eine Cache-Version dieser Bibliotheken zu verwenden scheint und nicht die neue, aktualisierte Snapshot-Version erneut herunterladen.

Ich habe versucht, so etwas in meinem Skript zu verwenden, aber es funktioniert nicht.

dependencies { 
    compile ('myGroupId:myArtifactId:X.Y.Z-SNAPSHOT'){ 
     changing=true 
    } 
} 

Die einzige Lösung, die zu funktionieren scheint ist das ~/.gradle/caches Verzeichnis zu löschen und dann das Projekt in Android Studio neu synchronisieren. Natürlich ist es keine gute Lösung.

Wie können wir mit Snapshot-Versionen arbeiten?

Antwort

2

Versuchen ruft, diese zu Ihrem gradle Skript:

configurations.all { 
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds' 
} 

Weitere Informationen: http://gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

+1

Nur ein Heads-Up, das bewirkt, dass alle Abhängigkeiten bei jeder Build/Gradle-Synchronisation aktualisiert werden, was die Build-Zeit drastisch erhöhen kann. Da sich die Abhängigkeiten nicht alle paar Sekunden ändern, empfehle ich die Verwendung eines manuellen Triggers, wie in [meine Antwort] (http://stackoverflow.com/a/29747193/288980) gezeigt. Ihr Build-Server kann dann so konfiguriert werden, dass er diesen Trigger bei jedem Build verwendet. – Mannaz

12

Sie können auch den gradle Parameter verwenden --refresh-dependencies

Die --refresh-Abhängigkeiten Option Gradle alle zwischengespeicherten Einträge für aufgelöst Module und Artefakte zu ignorieren erzählt. Eine neue Lösung wird für alle konfigurierten Repositorys durchgeführt, wobei dynamische Versionen neu berechnet, Module aktualisiert und Artefakte heruntergeladen werden. ...


ich für mich selbst erstellt ein neues gradle Startbefehl aktualisieren aufgerufen, die
./gradlew --refresh-dependencies clean

run debug configuration screenshot

+0

Dieses Skript funktioniert gut (+1). Auf jeden Fall bevorzuge ich die andere Antwort, weil es in einem Team komfortabler und geeigneter erscheint. –

Verwandte Themen