Nelle versioni di Maven precedenti alla 2.1, non c'è modo di configurare il client per il timeout, ma è possibile configurarlo per verificare gli aggiornamenti meno spesso se si imposta la politica di aggiornamento. Questo risolve parzialmente il problema.
Ad esempio:
<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>
valori validi sono:
- sempre - controllare sempre quando Maven è avviato versioni più recenti delle istantanee
- mai - mai verificare la presenza di nuove versioni remote. Una volta disattivati gli aggiornamenti manuali possono essere eseguiti.
- giorno (default) - controllare la prima corsa del giorno (ora locale)
- Intervallo: XXX - controllare ogni XXX minuti
Un'altra considerazione è il software che si sta utilizzando per ospitare il repository interno . Con un gestore di repository come Nexus è possibile gestire tutte le connessioni del repository remoto esterno tramite il gestore e configurare il timeout per tali connessioni remote. Il tuo cliente interrogherà quindi il gestore del repository, che dovrebbe rispondere con la stessa rapidità allo come consentito dai timeout.
Aggiornamento:
Se si conoscono le dipendenze non stanno andando per essere servito da un particolare repository, è possibile separare in un profilo, in modo che non viene fatto riferimento in quella di costruzione.
<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 configurazione di cui sopra, l'esecuzione pacchetto mvn -Premote non si collegherà al repository interno, in modo che il timeout non sarà un fattore.
È possibile evitare di dover specificare i profili di ogni generazione con l'aggiunta di un po 'di configurazione in più per le impostazioni:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Per Maven 2.1 è possibile impostare il timeout con l'aggiunta di una configurazione sul server nelle impostazioni Maven (~/.m2/settings.xml
per impostazione predefinita), per esempio:
<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>
fonte
2009-07-22 22:04:13
sembra http://www.jroller.com/mrdon/entry/making_maven_2_not_suck ci sono stati alcuni tentativi in questo, ma non riesco a trovare come usarlo. – rado