2012-12-31 8 views
23

Dopo aver aggiunto una dipendenza a un file .gradle, il nostro server di build cominciato ad avere problemi con la seguente fase di ingresso:Gradle "Impossibile aprire la cache della classe buildscript" - c'è un modo migliore per risolvere?

FAILURE: Build failed with an exception. 

* What went wrong: 
Could not open buildscript class cache for build file '/u01/apps/.jenkins/workspace/[path name snipped]/build.gradle'  (/home/[username]/.gradle/caches/1.3/scripts/build_5jii90b0hvl37q9m8vfhik495b/ProjectScript/buildscript). 
> java.io.EOFException 

Siamo stati in grado di risolverlo da svuotare la cache Gradle sugli slave di compilazione. Tuttavia, sono preoccupato che questa sia solo una soluzione temporanea e potrebbe essere mostrata di nuovo. C'è un modo migliore per risolvere questo problema?

+0

Questo è simile a un bug ho riferito, http://issues.gradle.org/browse/GRADLE -2249. Non ho trovato alcuna soluzione alternativa migliore di eliminare la cache sul server CI prima della creazione. –

+2

Grazie David, solo ora notando che qualcuno ha risposto su questo thread. – edclrk

risposta

4

Prima di tutto vorrei suggerire di aggiornare da Gradle 1.3 alla versione più recente. La cache dello script di compilazione è molto cambiata dal 1.3.

In secondo luogo, quando si esegue in un ambiente Jenkins, è normalmente una buona cosa considerare spostare utente gradle home in un'altra posizione rispetto a ~/.gradle /. Può essere modificato impostando la variabile di ambiente GRADLE_USER_HOME nelle impostazioni di Jenkins (configurazione del sistema). Nel nostro ambiente, ad esempio, abbiamo messo la cache gradle su un disco SSD locale invece del nostro NFS montato ~ /.

Una terza opzione consiste nell'utilizzare ogni area di lavoro di lavori come gradle home dell'utente. Questo viene fatto contrassegnando la casella "Forza GRADLE_USER_HOME per utilizzare l'area di lavoro" nella configurazione del lavoro di Jenkins. Ciò è molto efficace se i lavori vengono eseguiti sempre sullo stesso computer e non si rimuovono le aree di lavoro dopo ogni generazione.

30

Vai a posizione "cache \ .gradle \ 2.0 \ scripts \ build_7l4t45nbnsvdcl79ol8u0beli4 \ ProjectScript" e rimuovere il file cache.properties.lock

+2

Yey, quello ha funzionato per me. Cosa farebbe un programmatore senza Internet ... ;-) – Ted

+3

Continua a eliminare i file cache.properties.lock in/ProjectScript/buildscript e/ProjectScript/no_buildscript, dove mai viene indicato. Ha funzionato per me dopo aver eliminato 10 di questi file. – kingAm

+1

Sto cercando di cancellare questo file dicendo "L'azione non può essere completata, il file è aperto nella piattaforma java". Anche io uccido il processo nei processi del task manager. –

3

Esecuzione ./gradlew pulita dalla riga di comando (all'interno della cartella del progetto) sembrava per chiarire per me.

0

Se non del precedente funziona, è possibile eliminare la cartella delle cache.

2

C:\Users\John\.gradle\caches\2.4\scripts>del /S *.lock ha fatto il trucco per me utilizzando il prompt dei comandi di Win (lì dove un sacco di .lock). rm dovrebbe fare lo stesso per i sistemi di tipo Unix.

0

Stavo ricevendo questo in Visual Studio 2015 dopo l'aggiornamento a Strumenti per Apache Cordova v7.

L'eliminazione dei file .lock come sopra non ha aiutato.

Ho anche dovuto eliminare la cartella delle piattaforme. questa cartella è allo stesso livello della cartella www (non che VS la aggiunga a .gitignore).

Quindi creare, eliminare i file .lock, eliminare l'intera cache_ * cartella, risciacquare, ripetere finché la compilazione ha esito positivo.

7

Queste eccezioni si verificano in genere a causa di file di cache danneggiati.

L'eliminazione della cache funziona nella maggior parte dei casi.

Linux

rm -rf ~/.gradle/caches 

di Windows

Eliminare la cartella %USER_HOME%.gradle/caches

+0

Solo soluzione di lavoro per me – fillobotto

+0

Grazie ... ha lavorato per la prima volta ... !!! –

Problemi correlati