Archive for the ‘Maven’ Category

Nexus – ein neuer Maven Repository Manager

Tuesday, July 15th, 2008

Wer seine Projekte mit Maven baut wird früher oder später an den Punkt kommen, seine Artefakte in einem Repository anderen internen oder externen Entwicklern zur Verfügung stellen zu wollen. Nun wird man in den seltensten Fällen seine Artifakte in einem öffentlichen Repository wie ibilio.org veröffentlichen. Ein eigenes Repository muss also her. Im Open Source Umfeld gibt es einige gängige Vertreter:

Nach eher durchwachsenen Erfahrungen mit Proximity habe ich in den letzten 2 Jahren sehr gute Erfahrungen mit Artifactory gemacht. Besonders die Installation und Eintragung bzw. Wartung der Repository-Proxies geht mit Artifactory schon sehr viel leichter von der Hand. Einzig die recht schwerfällige und in meinen Augen unzureichende Suche nach Artifakten stören mich an Artifactory.

An dieser Stelle möchte ich keine Hilfe zur Entscheidungsfindung bei der Einführung eines Maven Repositories geben, sondern vielmehr auf einen noch relativ jungen Vertreter der Repository Manager hinweisen: Nexus. Zwar bisher nur als 1.0 Betaversion zum Download, macht Nexus schon einen sehr viel versprechenden Eindruck. Die Einrichtung nach der detailreichen Installationsanleitung lässt zunächst keine Fragen oder Probleme offen. Der erste auffallende Unterschied zu anderen Repository Managern ist die intuitiv und aufgeräumte Oberfläche – natürlich unter Verwendung moderner AJAX Technologien (ExtJS). Im Gegensatz zu Artifactory, Proximity und anderen Produkten kann man bei Nexus alle Konfigurationen direkt in der Oberfläche vornehmen. Ohne Bearbeitung von komplizierten XML Dateien oder lästigen Neustarts hat man so in kurzer Zeit die Einstellungen vorgenommen und sogar neue Repository-Proxies eingerichtet. Weitere Auffälligkeit unter der Oberfläche: die Artifakte werden direkt im Dateisystem im Ordner für das jeweilige Repository abgelegt. Das macht eventuelle Backup- & Restore-Arbeiten des Repositories sehr einfach.

nexus.png

Auch Artifactory bietet bereits die Möglichkeit, nach Artefakten zu suchen. Das ist allerdings darauf beschränkt, die Artefakte in den gehosteten Repositories zu durchsuchen. Will man auch Artefakte der öffentlichen Repositories durchsuchen, muss man andere Dienste wie mvnrepository.com nutzen. Artefakte in Snapshot Repositories und anderen nicht öffentlichen Repositories sind fast gänzlich von der Suche ausgeschlossen.

Hier geht Nexus nun einen entscheidenden Schritt weiter und bindet die Indizes anderer Repositories ein. Das bedeutet konkret, dass man mit Nexus sowohl die gehosteten Repositories (im Normalfall enthalten diese die eigenen Artefakte) wie auch Repository-Proxies (wie zB. Maven Central) durchsuchen kann. Und das auch dann schon, wenn die Artefakte noch nicht lokal vorliegen. Andere Dienste müssen bei der Suche nach Artefakten also nicht mehr bemüht werden.

Inzwischen haben wir unsere interne Entwicklungstoolkette von Artifactory auf Nexus umgestellt. Für die Anwender macht sich das einzig durch geänderte Repository URLs bemerkbar. Die Nutzung in Maven Projekten ist ansonsten von dieser Umstellung nicht negativ betroffen.