2015-04-20 10 views
7

Sto lavorando con le versioni SNAPSHOT di alcune librerie in Android Studio.Evita cache gradle per le versioni di istantanee

Il problema è che Gradle sembra usare un cache versione di queste librerie e non scaricare nuovamente la nuova versione aggiornata snapshot.

Ho provato a utilizzare qualcosa di simile nel mio script gradle, ma non funziona.

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

L'unica soluzione che sembra funzionare è quello di cancellare la directory ~/.gradle/caches e quindi risincronizzazione il progetto in Android Studio. Ovviamente non è una buona soluzione.

Come possiamo lavorare con le versioni di istantanee?

risposta

2

Prova ad aggiungere questo al vostro script Gradle:

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

Altre informazioni: http://gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

+1

Solo un heads-up che fa sì che tutte le dipendenze vengano aggiornate su ogni sincronizzazione build/gradle che potrebbe aumentare drasticamente i tempi di costruzione. Poiché le dipendenze non tendono a cambiare ogni pochi secondi, ti consiglio di utilizzare un trigger manuale come mostrato in [mia risposta] (http://stackoverflow.com/a/29747193/288980). Il tuo build-server può quindi essere configurato per utilizzare questo trigger su ogni build. – Mannaz

12

È inoltre possibile utilizzare il parametro Gradle --refresh-dependencies

L'opzione --refresh-dipendenze dice Gradle di ignorare tutte le voci memorizzate nella cache per i moduli e manufatti risolti. Una nuova risoluzione verrà eseguita su tutti i repository configurati, con le versioni dinamiche ricalcolate, i moduli aggiornati e gli artefatti scaricati. ...


ho per me stesso ha creato un nuovo comando Gradle run chiamato aggiornare che chiama
./gradlew --refresh-dependencies clean

run debug configuration screenshot

+0

Questo script funziona bene (+1). In ogni caso preferisco l'altra risposta perché in una squadra sembra più comoda e adatta. –

Problemi correlati