Dans les versions de Maven 2.1 avant, il n'y a pas moyen de configurer le client en attente, mais vous pouvez le configurer pour vérifier les mises à jour moins souvent si vous définissez la stratégie de mise à jour. Cela résout partiellement le problème.
Par exemple:
<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>
Les valeurs valides sont:
- toujours - toujours vérifier quand Maven est commencé pour les versions plus récentes de clichés
- jamais - jamais vérifier les nouvelles versions distantes. Une fois hors des mises à jour du manuel peut être effectué.
- tous les jours (par défaut) - case sur la première course de la journée (heure locale)
- intervalle:XXX - vérifier toutes les XXX minutes
Une autre considération est le logiciel que vous utilisez pour héberger votre référentiel interne. Avec un gestionnaire de dépôt tels que Nexus , vous pouvez gérer l'ensemble de votre télécommande externe connexions au référentiel par l'intermédiaire du gestionnaire et de configurer le délai d'attente pour ces connexions à distance. Votre client aura alors qu'à la requête du gestionnaire de référentiel, ce qui devrait répondre le plus rapidement
comme les délais le permettent.
Mise à jour:
Si vous connaissez les dépendances ne sont pas va être servi par un référentiel spécifique, vous pouvez les séparer en un profil, de sorte qu'il n'est pas référencé dans ce build.
<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>
Avec la config ci-dessus, l'exécution de mvn package -Premote refuse de se connecter au référentiel interne, de sorte que le délai d'attente ne sera pas un facteur.
Vous pouvez éviter d'avoir à spécifier les profils sur chaque build en ajoutant la configuration de vos paramètres:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Pour Maven 2.1, vous pouvez définir le délai d'attente par l'ajout d'une configuration sur un serveur dans le Maven paramètres, par exemple:
<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>