2014-12-08 26 views
21

Sto provando a generare progetti Eclipse e IDEA per un progetto di gioco utilizzando l'attivatore. Quando ho provato a fare questo, si fa un po ', ma poi si blocca a:L'attivatore `.sbt.ivy.lock` non è disponibile

Waiting for lock on C:\Users\James\.ivy2\.sbt.ivy.lock to be available...

In un primo momento ho pensato che la mia sessione in esecuzione di IntelliJ IDEA può essere in conflitto, ho ucciso IDEA e il problema persisteva. Ho chiuso l'attivatore, cancellato il file di blocco e riavviato l'attivatore, ma poi ha ricreato il file di blocco e mi ha dato lo stesso problema. Questo è il registro completo che ho ricevuto.

[info] Loading project definition from C:\Users\James\play-java\project 
[info] Set current project to play-java (in build file:/C:/Users/James/play-java/) 
[info] Applying State transformations com.typesafe.sbtrc.SetupSbtChild from C:/Users/James/.sbt/boot/scala-2.10.2/com.typesafe.sbtrc/sbt-rc-probe-0-13/1.0-1a8f7afd5ba98b45834ff53dd349130c3ade22f1/sbt-rc-probe-0-13-1.0-1a8f7afd5ba98b45834ff53dd349130c3ade22f1.jar;C:/Users/James/.sbt/boot/scala-2.10.2/com.typesafe.sbtrc/sbt-rc-probe-0-13/1.0-1a8f7afd5ba98b45834ff53dd349130c3ade22f1/sbt-rc-props-1.0-1a8f7afd5ba98b45834ff53dd349130c3ade22f1.jar 
[info] Updating {file:/C:/Users/James/play-java/}root... 
Waiting for lock on C:\Users\James\.ivy2\.sbt.ivy.lock to be available... 

Come posso risolvere il problema del lockfile?

risposta

23

Il file .sbt.ivy.lock viene utilizzato per sincronizzare l'accesso al repository ivy2 locale tra diversi processi in modo che non possano modificare la directory contemporaneamente. Di solito la situazione che hai descritto si verifica quando hai un terminale IDE e Activator/sbt in esecuzione contemporaneamente.

Anche se hai ucciso il processo Idea, potrebbe esserci un altro processo che causava il blocco, quindi la prossima volta assicurati di aver ucciso tutti i processi Java. Tuttavia, la soluzione migliore per questo problema è evitare di bloccare un processo con un altro. Quindi, esegui solo un processo che utilizza il repository ivy2 allo stesso tempo.

+2

Nel mio caso c'era un'istanza di attivatore che era in esecuzione in background. Dopo aver ucciso il processo, sono stato in grado di usare 'activator' – Halil

+3

Ho chiuso netbeans e quindi l'attivatore è proceduto. – Martlark

3

Se non funziona, l'ultimo passaggio consiste nell'uccidere il file .lock.

+0

Oltre a una vaga dichiarazione di cosa fare, come si uccide il file .lock? Dove si trova? Come si può determinare dove si trova? Come puoi determinare il percorso da eseguire sulla tua macchina. Sto facendo funzionare OSX al momento. Qualsiasi consiglio significativo è apprezzato. –

+2

killall -9 java ucciderà tutti i processi java. –

+1

Vecchio, ma volevo lasciare i dettagli extra per zero_cool: Il messaggio di blocco generalmente include l'intero percorso: In attesa di blocco su /foo/bar/.ivy2/.sbt.ivy.lock per essere disponibile ... Da lì, basta eliminare il file .sbt.ivy.lock e riprovare –

0

ho affrontato un problema simile, mi è stato anche sempre lo stesso errore

Waiting for lock on C:\Users\ajain9\.ivy2\.sbt.ivy.lock to be available... 

Poi finalmente il problema era che c'era un altro processo SBT in esecuzione sul mio sistema, e per questo il .sbt.ivy. il file di blocco non era disponibile. Come spiegato bene da Daniel, il file di blocco viene utilizzato per scopi di sincronizzazione.

Una volta terminato il processo precedente, non ho affrontato nuovamente questo errore.

Problemi correlati