2010-02-18 15 views
5

Ho Maven su server Ubuntu.Perché il mio Maven è così lento su Ubuntu?

Sembra provare un sacco di posti da scaricare ma il tempo di download è scaduto, ma il timeout richiede anni, quindi la mia intera compilazione richiede più di un'ora.

Downloading: http://scala-tools.org/repo-releases/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom 
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository scala-tools.org (http://scala-tools.org/repo-releases) 
Downloading: http://download.java.net/maven/2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom 
[WARNING] Unable to get resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' from repository java.net (http://download.java.net/maven/2): Error transferring file: Connection timed out 
Downloading: http://download.java.net/maven/1/org.apache.maven/poms/maven-repository-metadata-2.0.3.pom 
[WARNING] Unable to get resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' from repository m1.java.net (http://download.java.net/maven/1): Error transferring file: Connection timed out 
Downloading: http://download.java.net/maven/2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom 
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository maven2-repository.dev.java.net (http://download.java.net/maven/2) 
Downloading: http://repository.jboss.org/maven2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom 
[INFO] Unable to find resource 'org.apache.maven:maven-repository-metadata:pom:2.0.3' in repository repository.jboss.org (http://repository.jboss.org/maven2) 
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata/2.0.3/maven-repository-metadata-2.0.3.pom 

ho solo due pronti contro termine fissato nel mio esperto di costruire

<repository> 
    <id>central</id> 
    <name>Maven Repository Switchboard</name> 
    <layout>default</layout> 
    <url>http://repo1.maven.org/maven2</url> 
    <snapshots> 
     <enabled>false</enabled> 
    </snapshots> 
</repository> 

<repository> 
    <id>maven2-repository.dev.java.net</id> 
    <name>Java.net Repository for Maven</name> 
    <url>http://download.java.net/maven/2</url> 
</repository> 
<repository> 
    <id>repository.jboss.org</id> 
    <name>JBoss Repository</name> 
    <url>http://repository.jboss.org/maven2</url> 
</repository> 

Grazie, Filippo

+0

Cosa succede quando si copia uno degli URL e si tenta di scaricarlo tramite il browser? –

risposta

9

Sembra che la versione Maven confezionato di Ubuntu viene fornito con un /etc/maven2/settings.xml. Dai un'occhiata a questo file per vedere se contiene repository aggiuntivi. Controlla anche il file ~/.m2/settings.xml dell'utente che stai utilizzando.

PS: Non mi piace molto usare .deb per questo tipo di software e raccomandare l'installazione "manualmente" (vale a dire basta scaricare l'archivio, scompattarlo da qualche parte, impostare la variabile M2_HOME ENV e aggiungere $M2_HOME/bin al $PATH) .

+1

Voglio solo secondo questo. È così facile installare manualmente gli strumenti java che è quasi sempre il modo migliore per andare. – jshen

0

Assicurati di poter accedere a queste risorse (nel tuo caso le POM) al di fuori di Maven, se la macchina non ha connettività di rete per esempio (o non può risolvere nomi di host), andrà in timeout e richiederà un molto tempo (come hai notato).

Se non è necessario scaricare nuovamente le risorse ogni volta, è sufficiente eseguire Maven in modalità "non in linea" con l'opzione -o.

Inoltre, solo un suggerimento, è possibile che si desideri creare e installare POM, anche per i JAR di terze parti e quindi recuperarli nel repository locale. In questo modo, Maven non dovrà uscire alle valvole per ottenere risorse ogni volta (controllerà em, ma saranno risolte localmente).

Per JAR di terze parti o comunque non Maven, è possibile installare con lo install plugin.

3

Forse eccessivo se si è l'unico a lavorare sul progetto ma si consiglia di installare un gestore di repository Maven come Artifactory (http://www.jfrog.org/products.php) o Nexus. Non ho familiarità con Nexus, ma l'installazione di Artifactory è semplice: basta decomprimere e sei pronto per partire (dato che viene fornito con un molo incorporato).

Perché questo renderà il tuo Maven più veloce?

  • manager repository impiegano più sofisticato di caching che il nucleo Maven sé
  • (almeno con Artifactory) È possibile limitare quali repository Maven vengono interrogati per cui ID di gruppo. Ciò accelera notevolmente le cose se è necessario recuperare le dipendenze da più repository Maven diversi
+3

+1 per nexus, l'installazione è semplice e le funzionalità aggiuntive ne valgono la pena. – crowne

+0

btw, anche +1 per installare manualmente gli strumenti java e non utilizzare quelli forniti con la distribuzione. – JavaGuy

Problemi correlati