2010-02-18 42 views
5

Tengo Maven en el servidor de Ubuntu.¿Por qué mi Maven es tan lento en Ubuntu?

Parece que intenta muchos y muchos lugares desde los que descargar, pero la descarga se agota, pero el tiempo de espera lleva años, por lo que toda mi compilación demora más de una hora.

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 

Sólo he fijado dos repositorios en mi experta en construir

<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> 

Gracias, Philip

+0

¿Qué ocurre cuando copia una de las URL e intenta descargarla usando su navegador? –

Respuesta

9

Parece que la versión Maven empaquetado de Ubuntu viene con un /etc/maven2/settings.xml. Echa un vistazo a este archivo para ver si contiene repositorios adicionales. También verifique el archivo ~/.m2/settings.xml del usuario que está utilizando.

PD: No me gusta usar .deb para este tipo de software y recomendar instalarlo "manualmente" (es decir, sólo tiene que descargar el archivo, descomprimirlo en algún lugar, establecer la variable env M2_HOME y añadir a la $M2_HOME/bin$PATH) .

+1

Solo quiero repetir esto. Es tan fácil instalar manualmente las herramientas de Java que casi siempre es la mejor manera de hacerlo. – jshen

0

Asegúrate de que puedes acceder a estos recursos (en tu caso los POM) fuera de Maven, si la máquina no tiene conectividad de red por ejemplo (o no puede resolver los nombres de host), se desconectará y tomará un tiempo mucho tiempo (como notaste).

Si no necesita volver a descargar los recursos cada vez, simplemente ejecute Maven en el modo "fuera de línea" con el interruptor -o.

Además, solo un consejo, es posible que desee crear e instalar POM, incluso para JAR de terceros, y luego obtenerlos en su repositorio local. De esta forma, Maven no tendrá que ir a los tubos para obtener recursos cada vez (los controlará, pero se resolverán localmente).

Para terceros o no JAR Maven puede instalarlo con el install plugin.

3

Tal vez exagerado si usted es el único que trabaja en el proyecto, pero yo recomendaría instalar un administrador de repositorio de Maven como Artifactory (http://www.jfrog.org/products.php) o Nexus. No estoy familiarizado con Nexus, pero la instalación de Artifactory es muy simple: simplemente descomprímalo y estará listo (ya que viene con un embarcadero incrustado).

¿Por qué esto hará que tus compilaciones Maven sean más rápidas?

  • administradores de repositorios emplean almacenamiento en caché más sofisticado que el propio núcleo Maven
  • (al menos con Artifactory) Puede restringir que los repositorios Maven se consultan para la que ID de grupo. Esto acelera las cosas considerablemente si necesita obtener dependencias de múltiples repositorios Maven
+3

+1 para nexus, la configuración es sencilla y las funciones adicionales valen la pena. – crowne

+0

por cierto, también +1 para instalar las herramientas de Java manualmente y no usar las que vienen con su distribución. – JavaGuy

Cuestiones relacionadas