In Versionen von Maven vor 2.1 gibt es keine Möglichkeit, den Client auf Zeitlimit zu konfigurieren, Sie können ihn jedoch so konfigurieren, dass er bei der Festlegung der Aktualisierungsrichtlinie seltener nach Updates sucht. Dies behebt das Problem teilweise.
Zum Beispiel:
<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>
Gültige Werte:
- immer - immer überprüfen, wenn Maven für neuere Versionen von Snapshots
- nie gestartet wird - nie für neuere Remote-Versionen überprüfen. Einmalige manuelle Updates können durchgeführt werden. täglich
- (default) - überprüfen Sie auf dem ersten Lauf des Tages (Ortszeit)
- Intervall: XXX - prüfen alle XXX Minuten
Eine weitere Überlegung ist die Software, die Sie mit Ihrem internen Repository Host . Mit einem Repository-Manager wie Nexus können Sie alle Ihre externen Remote-Repository-Verbindungen über den Manager verwalten und das Timeout für diese Remote-Verbindungen konfigurieren. Ihr Client wird dann nur den Repository-Manager abfragen, der so schnell reagieren sollte, wie die Timeouts zulassen.
Update:
Wenn Sie die Abhängigkeiten wissen nicht von einem bestimmten Repository bedient gehen werden, können Sie es in ein Profil trennen kann, so ist es nicht in diesem Build verwiesen.
<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>
Mit der obigen Konfiguration, läuft MVN Paket -Premote wird nicht an die interne Repository verbinden, so dass der Zeitüberschreitungs kein Faktor sein.
können Sie vermeiden auf jedem Build die Profile angeben zu müssen, indem Sie einige zusätzliche Konfigurations, um Ihre Einstellungen hinzu:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Für Maven 2.1 können Sie das Timeout durch eine Konfiguration auf einem Server in den Maven Einstellungen hinzugefügt (~/.m2/settings.xml
Standardeinstellung), zum Beispiel:
<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>
sieht es wie http://www.jroller.com/mrdon/entry/making_maven_2_not_suck aus es gab einige Versuche, aber ich kann nicht finden, wie man es benutzt. – rado