it-swarm.com.de

Sollten wir Nexus oder Artifactory für einen Maven Repo verwenden?

Wir verwenden Maven für einen großen Build-Prozess (> 100 Module). Wir haben unsere externen Abhängigkeiten in der Quellcodeverwaltung gespeichert und damit ein lokales Repo aktualisiert.

Wir sind jedoch bereit, auf ein lokales Repo umzusteigen, das zentral zwischengespeichert werden kann, sodass wir nicht alle Drittanbieter proaktiv herunterladen müssen (wir können jedoch immer noch ein lokales Repo zum Abrufen haben). Außerdem möchten wir unsere internen Build-Artefakte aus einem nächtlichen Build veröffentlichen, damit Entwickler die Welt nicht erstellen müssen.

Wir ziehen Nexus und Artifactory in Betracht. Was sind die Gründe, eine der anderen vorzuziehen? Gibt es noch andere, über die wir nachdenken sollten?

115
John Stauffer

Ich kenne Artifactory nicht, aber hier sind meine Gründe für die Verwendung von Nexus:

  • Ganz einfach zu installieren (und seit 1.2 auch ganz einfach zu aktualisieren)
  • Sehr gute Weboberfläche
  • Pflegeleicht, fast kein administrativer Aufwand
  • Bietet RSS-Feeds mit kürzlich installierten, beschädigten Artefakten und Fehlern
  • Es kann mehrere Repositorys gruppieren, sodass Sie mehrere Quellen spiegeln können, aber nur ein oder zwei Einträge in Ihrer settings.xml benötigen
  • Die Bereitstellung über Maven funktioniert sofort (keine WebDAV-Hacks usw. erforderlich).
  • es ist kostenlos
  • Sie können Zugriffspfade umleiten (d. H. Einige fehlerhafte pom.xml erfordern "a.b.c" von "xxx"). Anstatt das POM zu patchen, können Sie den Fehler in Nexus beheben und die Anforderung an den Ort umleiten, an dem sich das Artefakt tatsächlich befindet.
73
Aaron Digulla

Ich bin sicher, wenn Sie nur über das Speichern von Binärdateien aus "mvn deploy "beides wird gut gehen.

Wir verwenden Artifactory sehr häufig bei allen Upgrades auf dem Weg. Viele Projekte, zahlreiche bereitgestellte Snapshots und externe Repos. Kein einziges Problem. Ich finde es schwierig zu erklären, wie andere Leute Probleme mit der Datenbank, der Indizierung oder etwas anderem haben. So etwas ist uns noch nie passiert. Artifactory erlaubt es auch, Daten auf einer Festplatte zu speichern und nur eine Datenbank zum Speichern von Metadaten zu verwenden. Es ist sehr flexibel ( siehe mehr hier ).

Was diese Anwendungen very anders macht, ist ihr Ansatz zur Integration mit anderen Build-Tools und -Technologien. Nexus und Sonatype sind für Maven und m2Eclipse so gut wie gesperrt. Sie ignorieren alles andere und haben erst vor kurzem begonnen, an ihrer eigenen proprietären Hudson-Integration zu arbeiten (siehe ihr Maven 3-Webinar ).  BEARBEITEN: Dies gilt nicht mehr ab 2017 Nexus bietet eine viel größere Unterstützung für andere Build-Tools Ende der Bearbeitung

Artifactory bietet eine fantastische Hudson-, TeamCity- und Bamboo-Integration und Gradle / Ivy Unterstützung. Während Nexus Ihnen beim Verlassen der "Komfortzone" von Sonatype (Maven, m2Eclipse) nichts bietet, arbeitet Artifactory mit allen wichtigen Build-Tools zusammen.

In der Tat in der Lage sein, Build-Artefakte von Hudson bereitzustellen, wenn der Auftrag abgeschlossen ist, und nicht von "mvn deploy "ist ein großer Unterschied: Das Artifactory-Hudson-Plugin stellt alle Artefakte atomar bereit sofort, nur wenn ein Build-Auftrag erfolgreich abgeschlossen wurde." mvn deploy "wird nach jedem Modul ausgeführt und kann einen Teil der Artefakte bereitstellen, wenn ein Build-Job in der Mitte fehlschlägt. Die Bereitstellung von Maven nach Abschluss des Moduls und nicht von einem Build-Server nach Abschluss des Jobs ist eine schlechte Sache.

Wie Sie sehen, denkt Artifactory "außerhalb des Kastens", während Nexus "innerhalb des Kastens" denkt und sich nur um Maven- und Maven-Artefakte kümmert.

Etwas anderes, das Artifactory zugänglicher macht, ist das Cloud-basierte Artifactory Online-Lösung . Für etwa 80 US-Dollar pro Monat verfügen Sie über eine eigene Artifactory-Instanz, für die Sie keinen Server dedizieren müssen.

Artifactory hat eine einfache und unkomplizierte REST API , weiß nicht, wie es für Nexus funktioniert. Bearbeiten Nexus hat auch eine REST API , die Sie auch leicht verwenden können.

Zusammenfassend kann ich sagen, dass für die grundlegende Speicherung von Maven-Artefakten beide in Ordnung sind. Aber während Nexus aufhört, ausschließlich einen "Maven-Repository-Manager" zu haben, bleibt Artifactory ein allgemeiner "Binärspeicher" für Binärdateien jeglicher Art, von jedem Build-Tool und CI-Server.

115
Evgeny Goldin

Artifactory unterstützt beide Dateisystem- und Datenbankspeicher-Backends. Die Speicherung basiert auf Prüfsummen und identische Binärdateien werden nur einmal gespeichert, unabhängig davon, wie oft sie im Repo erscheinen, wodurch Artifactory effizienter gespeichert wird. Verschieben und Kopieren sind aufgrund dieser Architektur auch sehr kostengünstig (in Nexus gibt es keine REST für Verschieben/Kopieren - Sie müssen Sachen auf dem Dateisystem verschieben und dann Korrekturmaßnahmen für das Repo ausführen lassen es weiß, dass sich der Inhalt geändert hat).

Ein weiteres wichtiges Unterscheidungsmerkmal ist die einzigartige Integration von Artifactory in Hudson und TeamCity zur Erfassung von Informationen zu bereitgestellten Artefakten, gelösten Abhängigkeiten und Umgebungsdaten, die mit Build-Läufen verknüpft sind, wodurch eine vollständige Build-Rückverfolgbarkeit gewährleistet wird.

27
Yoav Landman

Artifactory speichert die Artefakte in einer Datenbank. Wenn also etwas schief geht, sind alle Ihre Artefakte verschwunden. Nexus verwendet eine flache Datei für Ihre wertvollen Artefakte, damit Sie sich keine Sorgen machen müssen, dass alle verloren gehen.

22
Brian Fox

Wenn Sie die "Pro" -Funktionen einer der beiden (z. B. Staging-Repos, Artefaktwerbung, NuGet) benötigen, müssen Sie die verschiedenen Preismodelle berücksichtigen, die auf ihren Websites angezeigt werden.

Zusammenfassend:

  • Artifactory Pro
    • sie zahlen pro Server
    • sie können mehr für erhöhte Service-Stunden zahlen
  • Nexus Pro
    • sie zahlen pro Platz , d. h. wie viele Entwickler Artefakte herunterladen
    • support-Service ist nur Mo-Fr 0800-2000 ET, egal was Sie bezahlen

Egal wie viele Benutzer Sie haben, Nexus Pro bietet einen Support-Service, der im Großen und Ganzen dem "Silver Value Pack" von Artifactory für 7.450 US-Dollar pro Jahr entspricht.

Für 7.450 US-Dollar pro Jahr erhalten Sie ungefähr 67 Nexus Pro-Sitze (1-50 @ 108 US-Dollar, der Rest @ 120 US-Dollar).

Dann macht Nexus Pro allein schon in Bezug auf Preis und Support Sinn, bis 67 Benutzer erreicht sind. Ab diesem Zeitpunkt ist Artifactory die billigere Option.

Wenn Sie die gesamte Unterstützung intern erledigen; Dieser magische Punkt liegt jedoch bei 23 Benutzern (das grundlegendste Support-Angebot von Artifactory liegt bei 2.750 US-Dollar pro Jahr).

9
RCross

Ich habe kürzlich über Artifactory 2 und Nexus 1.3 recherchiert. Ich werde hier die Hauptunterschiede auflisten, die ich gefunden habe:

  • Artifactory speichert Metadaten und optional Dateien in der Datenbank. Nexus schreibt direkt in das Dateisystem. Es gibt Profis. und Nachteile. für jeden Ansatz. DB unterstützt Transaktionen, während in FS gespeicherten Dateien direkt zugegriffen werden kann.
  • Artifactory stellt höhere Systemanforderungen, insbesondere an den Speicherplatz.
  • Artifactory bietet LDAP-Unterstützung, Nexus nur in der kostenpflichtigen Version. Auf der anderen Seite ist ein kostenloses LDAP-Plugin für Nexus im Google-Code verfügbar.

Der vollständigste Vergleich: http://binary-repositories-comparison.github.io/

8
Sergey

Sie sollten Artifactory verwenden. Die neueste Version war ein echter Sprung. Sie können Ihre Repositories inkrementell sichern. Das bedeutet, Sie können alle Ihre Artefakte speichern und warten. Es hat eine benutzerfreundliche Web-Benutzeroberfläche und ist sehr einfach einzurichten. Ich habe es sehr genossen heraus seine neue Version 2.0

7
Tal

Aus der Sicht der Lernenden stelle ich einige spezifische Unterschiede zwischen den beiden fest.

  1. Die Bereitstellung von Sonatype .war wird derzeit auf dem Jboss-Anwendungsserver nicht unterstützt, obwohl sie unter Tomcat ausgeführt wird.
  2. Sonatype bietet mir derzeit kein Amazon Machine Image (AMI) an, mit dem ich schnell aufstehen und testen könnte.
  3. Ein Artifactory-AMI wird von Bitnami bereitgestellt und benötigt nur wenige Minuten für das Aufstehen und einige Minuten für die Konfiguration. Je nachdem, was Sie erreichen möchten, sind es möglicherweise mehrere zehn Minuten.
  4. Artifactory bietet eine SaaS Version von Artifactory in der Cloud, damit Sie sich auf die Erledigung von Aufgaben konzentrieren können, anstatt auf die Infrastruktur.
  5. Ich habe keine Erfahrung mit Nexus, aber ich fand Artifactory sehr intuitiv und einfach zu konfigurieren, zumindest anfangs.
  6. Hinzugefügt - Ich stelle jedoch fest, dass das Artifactory-Benutzerhandbuch, das für erfahrene Profis in Ordnung sein kann, für einige ausführliche Erklärungen ein wenig zu kurz kommt. Beispielsweise wird zu Beginn ein Repository entpackt und dann hinzugefügt, beispielsweise Jboss EAP Enterprise Repo von RedHat. Alles funktioniert, aber als ich dann versuchte, die importierten Artefakte anzuzeigen, meldete Artifactory keine Artefakte? Keine Fehler oder Warnungen, daher suche ich jetzt nach einer Erklärung. Ist das normal oder nicht normal? Eine einfache Erklärung in der Dokumentation kann schnell einen Hinweis in die richtige Richtung geben. Als guter Mitwirkender füge ich diese Kommentare zum Projekt hinzu, um anderen Startern zu helfen.
5
user3175893

Abgesehen von jeglicher Politik/Religion macht die Lizenzierung für einige Organisationen einen Unterschied.

Nexus ist GPL jetzt AGPLv3 und jetzt Eclipse Public License (EPL) .

Künstlich ist Apache lizensiert LGPLv lizenziert ab Version 2.1 des Produkts.

Vielleicht möchten Sie auch Archiva in Betracht ziehen, nur zu Vergleichszwecken. Es ist Apache 2.0 lizenziert.

3
Zac Thompson

Ich sehe, dass die Nexus-Nutzung zunimmt, während die künstliche Nutzung im Allgemeinen flach bleibt.

enter image description here

Das Bild stammt von hier http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

Es gibt auch Matrix-Vergleich http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

1
rofrol