In der Entwicklungsabteilung, für die ich arbeite, haben wir ein internes MAVEN-Repository, in dem wir unsere (proprietären und offenen) Bibliotheken aufbewahren. Ein häufiges Problem, mit dem wir konfrontiert sind, ist, dass manchmal die Open-Source-Bibliotheken in unserem lokalen MAVEN-Repository veraltet sind. Gibt es eine automatische Methode, um alle Open-Source-Bibliotheken, die ich in meinem MAVEN-Repository verwende, immer auf dem neuesten Stand zu halten? Was schlagen Sie vor, um dieses Problem zu beheben?
Antworten
Zu viele Anzeigen?Angenommen, Sie:
- Ich möchte nicht alles herunterladen
- Sie wollen keinen weiteren Server betreiben Prozess
- nur eine begrenzte Anzahl verfolgen wollen von Projekten
Möglicherweise möchten Sie eine separate pom.xml-Datei mit Abhängigkeiten wie dieser erstellen:
<dependency>
<groupId>org.openfoo</groupId>
<artifactId>jfoo</artifactId>
<version>[1.0.0,2.0.0)</version>
</dependency>
Dies wird Maven anweisen, jfoo 1.0.0 bis jfoo 2.0.0 zu verwenden. Wenn also jfoo die Version 1.2.17 herausgibt, werden Sie diese im nächsten Build abrufen, vorausgesetzt, Ihre Einstellungen sind so eingestellt, dass die Versionen jedes Mal überprüft werden.
Dieser Pom muss nicht wirklich etwas bauen. Listen Sie einfach die Dinge auf, die Sie verfolgen wollen.
Laufen:
cd the-path-to-the-project; mvn -q -B -U package
Via cron werden einmal am Tag alle Abhängigkeiten in diesem pom aktualisiert und nur gemeldet, wenn es ein Problem gibt
Übrigens, das ist ein Hacker. Wenn die Anzahl der Entwickler > 3 ist und Sie die Ressourcen haben, um Nexus laufen zu lassen, brauchen Sie sich nicht mit dem Hack zu befassen.
Werfen Sie einen Blick auf Apache Archiva ein Repository-Manager für Maven.