5

Da venerdì scorso, le mie app Play Framework richiedono più di 15 minuti per la compilazione, a causa di tempi di risoluzione delle dipendenze estremamente lunghi.Play Framework richiede molto tempo per risolvere le dipendenze

Le dipendenze si trovano su repo.typesafe.com, repo1.maven.org e molti altri, inclusi quelli come Deadbolt, ospitati su GitHub Pages (http://schaloner.github.com), quindi non sono sicuro che sia un singolo esterno pronti contro termine.

Non posso per la vita di me capire che cosa sta causando questo. Qualcuno può darmi un'idea di dove iniziare il trouble-shooting?

EDIT: Ulteriori Info - Ho testato un nuovo gioco app con una nuova istanza giocare su una nuova macchina virtuale (Ubuntu 12.04) e ho ottenere gli stessi tempi lunghi di risoluzione per l'aggiunta del connettore mysql JDBC da Maven 1 e deadbolt da GitHub Pages. Sembra che sia appeso a uno dei repository e non termini, ma non so come capire quale. Ho commentato il repository TypeSafe nel file plugins.sbt, ma il problema persiste. Tirando fuori i capelli adesso.

EDIT 2: Il bug esiste nelle filiali 2.0 e 2.1. Impossibile replicare in 2.2. Per il momento, sembra che aggiungere i file pubblicati a [Play directory]/repository/cache interrompe la riproduzione cercando di risolvere ogni volta ogni cosa.

+0

Ho lo stesso problema . – stys

+0

Modificare il livello del registro in "Warn" in project/plugins.sbt. 'logLevel: = Level.Warn' – Adil

+0

@Adil Tutti i progetti hanno già impostato il livello di registrazione. – evanjdooner

risposta

1

Penso che il problema sia causato dai tempi di fermo di Github. Il mio progetto dipende da progetti Github ospitati come il catenaccio, e così ho potuto aggiungere repository corrispondenti al mio Build.scala il file

resolvers += Resolver.url("Objectify Play Repository (release)", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns), 
resolvers += Resolver.url("Objectify Play Repository (snapshot)", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns) 

Quello che ho notato è che il gioco tenta di risolvere il mio altre dipendenze attraverso questo repository. Ad esempio, ho visto errori di timeout per risolvere apache.commons-io e htmlunit e le sue dipendenze transitive nel repository github ospitato da Deadbolt. Nel caso normale tali tentativi fallirebbero rapidamente. Ma quando Github è lento, ci vuole molto tempo per ottenere una risposta di errore.

Ci dovrebbe essere un modo per specificare con maggiore precisione quale repository utilizzare per ciascuna dipendenza, ma non sono sicuro di come farlo con SBT o Maven.

UPDATE

Il problema non è stato risolto. Ecco un esempio di errore di timeout, questa volta sul repository Typesafe

[error] Server access Error: Connection timed out: connect url=http://repo.types 
afe.com/typesafe/releases/org/apache/commons/commons-email/1.2/commons-email-1.2 
.jar 

UPDATE 2

Un problema molto simile è stato visto prima:

https://groups.google.com/forum/#!msg/play-framework/cBIkLb_WPN8/uuJIdhdtvtEJ

+0

Questo è qualcosa che avevo considerato. Pensavo che avesse qualcosa a che fare con i guasti in uno dei repository remoti. I miei test sono stati eseguiti con nuove installazioni di Play e nuovi progetti con solo la dipendenza da mysql-connector-java di Maven 1 e nessun resolver personalizzato.Ho visto tempi di risoluzione lunghi su Play 2.0.X e 2.1.X, ma non 2.2.X. Abbiamo aggiornato alla versione 2.2.2 e per ora abbiamo risolto il problema. – evanjdooner

+1

Da quando siamo passati alla 2.2.2, non abbiamo avuto problemi. Posso confermare che il problema è ancora evidente in 2.1.5 a partire da Mar 22 Apr 2014 – evanjdooner

+1

@evanjdooner Grazie per l'aggiornamento. Sto considerando di passare alla 2.2.2, che richiederebbe alcuni sforzi. Attualmente utilizzo una soluzione rapida. Sulla prima build dopo clean ho rimosso manualmente i repository basati su github da Build.scala. Ciò consente ad altre dipendenze di risolversi velocemente in modo risonabile e di essere memorizzate nella cache. Poi metto le parti rimosse e costruisco la seconda volta. – stys