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, zu einem lokalen Repo überzugehen, das zentral zwischengespeichert werden kann, damit wir nicht alle Drittanbieter proaktiv herunterladen müssen (aber wir können immer noch ein lokales Repo zum Abrufen haben). Darüber hinaus möchten wir unsere internen Build-Artefakte aus einem nächtlichen Build veröffentlichen, damit Entwickler nicht die Welt erstellen müssen.
Wir betrachten Nexus und Artifactory. Was sind die Gründe, einen dem anderen vorzuziehen? Gibt es andere, über die wir nachdenken sollten?
maven-2
nexus
artifactory
John Stauffer
quelle
quelle
Antworten:
Ich weiß nichts über Artifactory, aber hier sind meine Gründe für die Verwendung von Nexus:
quelle
Ich bin sicher, wenn Sie nur über das Speichern von Binärdateien von "
mvn deploy
" sprechen, werden beide gut funktionieren.Wir verwenden Artifactory sehr ausgiebig bei allen Upgrades auf dem Weg. Viele Projekte, zahlreiche bereitgestellte Snapshots und externe Repos als Proxy. Kein einziges Problem. Es fällt mir schwer zu erklären, wie andere Leute Probleme mit der Datenbank, der Indizierung oder irgendetwas anderem haben. So etwas ist uns noch nie passiert. Artifactory ermöglicht es auch, Daten auf einer Festplatte zu speichern und nur eine Datenbank zum Speichern von Metadaten zu verwenden. Es ist recht flexibel ( siehe mehr hier ).
Was diese Anwendungen sehr unterscheidet, ist ihr Ansatz zur Integration mit anderen Build-Tools und -Technologien.
Nexus und Sonatype sind für Maven und m2eclipse ziemlich gesperrt. Sie ignorieren alles andere und haben erst vor kurzem begonnen, an ihrer eigenen Hudson-Integration zu arbeiten (siehe ihr Maven 3-Webinar ).BEARBEITEN: Dies gilt ab 2017 nicht mehr. Nexus bietet eine viel größere Unterstützung für andere Build-Tools. Ende der BearbeitungArtifactory bietet eine großartige Integration von Hudson, TeamCity und Bamboo sowie Gradle / Ivy- Unterstützung. Während Nexus Ihnen nichts bietet, wenn Sie die "Komfortzone" von Sonatype (Maven, m2eclipse) verlassen, umfasst Artifactory alle wichtigen Build-Tools und arbeitet mit ihnen zusammen.
Tatsächlich ist die Bereitstellung von Build-Artefakten von Hudson nach Abschluss des Jobs und nicht von "
mvn deploy
" ein großer Unterschied: Das Artifactory Hudson-Plugin führt eine atomähnliche Bereitstellung aller Artefakte auf einmal durch , nur wenn ein Build-Job erfolgreich abgeschlossen wurde. "mvn deploy
" wird nach jedem Modul ausgeführt und kann einen Teilsatz von Artefakten 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 wirklich eine schlechte Sache.Wie Sie sehen, denkt Artifactory "außerhalb der Box", während Nexus "innerhalb der Box" denkt und sich nur um Maven- und Maven-Artefakte kümmert.
Etwas anderes, das Artifactory zugänglicher macht, ist die Cloud-basierte Artifactory Online-Lösung . Für etwa 80 US-Dollar pro Monat haben Sie eine eigene Artifactory-Instanz, für die Sie keinen Server reservieren müssen.
Artifactory hat eine einfache und unkomplizierte REST-API , weiß nicht, wie es für Nexus funktioniert. Edit Nexus verfügt auch über eine REST-API , die Sie ebenfalls problemlos verwenden können.
Zusammenfassend denke ich, 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, geht Artifactory immer weiter und ist ein allgemeiner "Binärspeicher" für Binärdateien jeglicher Art, von jedem Build-Tool und CI-Server.quelle
Artifactory unterstützt sowohl Dateisystem- als auch Datenbankspeicher-Backends. Die Speicherung basiert auf Prüfsummen und identische Binärdateien werden nur einmal gespeichert, unabhängig davon, wie oft sie im Repo angezeigt werden. Dies macht Artifactory in Bezug auf die Speicherung effizienter. Verschieben und Kopieren sind aufgrund dieser Architektur auch sehr billig (in Nexus gibt es keinen REST für Verschieben / Kopieren - Sie müssen Inhalte im Dateisystem verschieben und dann Korrekturmaßnahmen für das Repo ausführen, um zu erfahren, 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 über bereitgestellte Artefakte, aufgelöste Abhängigkeiten und Umgebungsdaten im Zusammenhang mit Build-Läufen, wodurch eine vollständige Rückverfolgbarkeit der Builds gewährleistet wird.
quelle
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, sodass Sie sich keine Sorgen machen müssen, dass sie alle verloren gehen.
quelle
Wenn Sie die "Pro" -Funktionen von beiden benötigen (z. B. Staging-Repos, Artefaktwerbung, NuGet), müssen Sie die verschiedenen Preismodelle berücksichtigen, die auf ihren Websites angezeigt werden.
Zusammenfassend:
Unabhängig davon, wie viele Benutzer Sie haben, bietet Nexus Pro einen Support-Service, der im Großen und Ganzen dem "Silver Value Pack" von Artifactory für 7.450 USD / Jahr entspricht.
Mit 7.450 USD / Jahr erhalten Sie ungefähr 67 Nexus Pro-Sitze (1-50 @ 108 USD, der Rest 120 USD).
Allein in Bezug auf Preis und Support ist Nexus Pro sinnvoll, bis Sie 67 Benutzer erreicht haben. Ab diesem Zeitpunkt wird Artifactory zur günstigeren Option.
Wenn Sie die gesamte Unterstützung intern erledigen; Dieser magische Punkt liegt jedoch bei 23 Benutzern (das grundlegendste Supportangebot von Artifactory liegt bei 2.750 USD / Jahr).
quelle
Ich habe kürzlich einige Nachforschungen über Artifactory 2 und Nexus 1.3 angestellt. Ich werde hier die Hauptunterschiede auflisten, die ich gefunden habe:
Der vollständigste Vergleich: http://binary-repositories-comparison.github.io/
quelle
Sie sollten Artifactory verwenden. Die neueste Version war ein echter Sprung. Sie können Ihre Repositorys schrittweise sichern, was bedeutet, dass Sie alle Ihre Artefakte speichern und pflegen können. Es verfügt über eine benutzerfreundliche Web-Benutzeroberfläche und ist sehr einfach einzurichten. Ich habe es sehr genossen aus seiner neuen Version 2.0
quelle
Aus Sicht der Lernenden stelle ich einige spezifische Unterschiede zwischen den beiden fest.
quelle
Abgesehen von Politik / Religion macht die Lizenzierung für einige Organisationen einen Unterschied.
Nexus ist
GPL,jetztAGPLv3und jetzt Eclipse Public License (EPL) .Artifactory ist
Apache-lizenziertesLGPLv3, lizenziert ab Version 2.1 des Produkts.Vielleicht möchten Sie auch Archiva in Betracht ziehen , nur zum Vergleich. Es ist Apache 2.0 lizenziert.
quelle
Ich sehe, dass die Nutzung von Nexus zunimmt, während die Nutzung von Artifcatory im Allgemeinen unverändert bleibt.
Das Bild stammt von hier http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
Es gibt auch einen Matrixvergleich http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
quelle
Sowohl Artifactory als auch Nexus verfügen über mehr oder weniger ähnliche Funktionen, aber die LDAP-Unterstützung von Artifactory macht es gegenüber Nexus attraktiver. Nexus hat zwar auch LDAP-Unterstützung aber in kostenpflichtiger Version :-(
quelle
Hmmm ... meine Erfahrung mit Artifactory ist schrecklich ... aber ich bin ein relativer Neuling, also nimm es mit einem Körnchen Salz. Meine allgemeine Beschwerde ist, dass JAR-Dateien, die kürzlich in Artifactory hochgeladen wurden, nicht sofort indiziert zu werden scheinen - wie stundenlang - und es scheint keinen guten Weg zu geben, dies zu erzwingen. Ich habe verschiedene Dinge ausprobiert, die so aussahen, als hätten sie funktionieren sollen, aber nicht. Ich habe mit m2eclipse gearbeitet und einem Projekt, das ich von ant konvertiere, Abhängigkeiten hinzugefügt. Wenn ich versuche, ein Glas hinzuzufügen, das ich gerade zu artifactory hinzugefügt habe, erwarte ich, dass es als Auswahl in der Auswahl angezeigt wird, aber dies ist nicht der Fall.
Ein Mitarbeiter hat mir erzählt, dass sie Nexus installiert haben und es ihnen bisher gefällt ... aber ich kann noch nicht dafür bürgen. Ich bin dabei, das auf einer Linux-Box zu installieren, sobald die IT mich finden kann.
quelle