En las versiones de Maven anteriores a la 2.1, no hay forma de configurar el tiempo de espera del cliente, pero puede configurarlo para buscar actualizaciones con menos frecuencia si establece 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 - comprobar siempre cuando Maven se inicia nuevas versiones de las instantáneas
- Nunca - Nunca comprobar si hay versiones más nuevas remotas. Una vez desactivadas, se pueden realizar actualizaciones manuales.
- diaria (por defecto) - comprobar en la primera carrera del día (hora local)
- intervalo: XXX - Revisar toda la XXX minutos
Otra consideración es el software que está utilizando para alojar su repositorio interno . Con un administrador de repositorio como Nexus, puede administrar todas sus conexiones de repositorio remoto externo a través del administrador y configurar el tiempo de espera para esas conexiones remotas. Entonces, su cliente solo consultará al administrador del repositorio, que debe responder tan rápido como , ya que los tiempos de espera lo permiten.
Actualización:
Si conoce las dependencias no van a ser servido por un repositorio en particular, puede separarlo en un perfil, por lo que no se hace referencia en esa construcció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, corriendo mvn package -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 generación, añadiendo un poco de configuración adicional para su configuración:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Para Maven 2.1 se puede establecer el tiempo de espera mediante la adición de 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>
se ve como http://www.jroller.com/mrdon/entry/making_maven_2_not_suck ha habido algunos intentos de esto, pero no puedo encontrar la manera de usarlo. – rado