java - descargar - maven mac
¿Cómo hacer que Maven expire antes al descargar dependencias? (2)
En las versiones de Maven anteriores a la 2.1, no hay medios para configurar el tiempo de espera del cliente, pero puede configurarlo para verificar las actualizaciones con menos frecuencia si configura la política de actualización. Esto aborda parcialmente el problema.
Por ejemplo:
<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
Los valores válidos son:
- siempre: compruebe siempre cuando se inicia Maven para obtener versiones más recientes de instantáneas
- nunca - nunca busque nuevas versiones remotas. Una vez apagado se pueden realizar actualizaciones manuales.
- diario (predeterminado): verifique la primera ejecución del día (hora local)
- intervalo: XXX - comprueba cada XXX minutos
Otra consideración es el software que está utilizando para alojar su repositorio interno. Con un administrador de repositorios como Nexus , puede administrar todas sus conexiones de repositorios remotos externos a través del administrador y configurar el tiempo de espera para esas conexiones remotas. Su cliente solo consultará al administrador del repositorio, que debería responder tan rápido como lo permitan los tiempos de espera.
Actualizar:
Si sabe que las dependencias no serán servidas por un repositorio en particular, puede separarlas en un perfil, por lo que no se hace referencia en esa compilación.
<profiles>
<profile>
<id>remote</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
<profile>
<id>internal</id>
<repositories>
<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
</profiles>
Con la configuración anterior, la ejecución del paquete mvn -Premote no se conectará al repositorio interno, por lo que el tiempo de espera no será un factor.
Puede evitar tener que especificar los perfiles en cada compilación agregando alguna configuración adicional a su configuración:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Para Maven 2.1, puede establecer el tiempo de espera agregando una configuración en un servidor en la configuración de Maven ( ~/.m2/settings.xml
por defecto), por ejemplo:
<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>
Estoy construyendo mi proyecto con Apache Maven y tengo un repositorio personalizado configurado, pero cuando llega al repositorio, se cuelga durante mucho tiempo con
Descargando: http://maven.mycompany.com/m2/org/springframework/spring/2.5.6/spring-2.5.6.pom
Después de unos minutos, se va y se descarga desde el repositorio central.
Descargando: http://repo1.maven.org/maven2/org/springframework/spring/2.5.6/spring-2.5.6.pom 12K descargado (spring-2.5.6.pom)
Quiero que el tiempo de espera sea mucho más rápido que eso. Esto sucede con todas las nuevas versiones de maven. La versión 2.0.6 o anterior no tenía este problema, se agotaría mucho más rápido.
Un truco rápido y sucio es agregar una entrada de archivo hosts personalizada para redirigir las solicitudes de red al repositorio no válido a uno válido.