2013-03-05 12 views
18

Ich versuche ein anständiges Referenzmanagement in meiner Organisation einzuführen. Nachdem ich Nexus mit Maven benutzt habe, weiß ich, dass es der Methode alles lokal weit überlegen ist. Da dies ein .Net-Shop ist, möchte ich NuGet anstelle von Maven verwenden. Ich weiß, dass das binäre Repository das wichtigste Bit sein wird, um richtig zu sein, aber ich habe keine Erfahrung darin, ein NuGet-Repository in einem binären Repository zu hosten.Nexus oder Artefakt mit Nuget?

Gibt es einen Grund, Nexus oder Artifactory in dieser Situation zu bevorzugen? Wir verwenden Jenkins mit svn als unser CI, wenn das einen Unterschied macht.

+0

Just und update auf diese seit den Fragen ein paar Jahre alt, gibt es jetzt ProGet, die als NuGet-Paket-Manager gestartet wurde, ist aber jetzt ein universeller Artefakt Repository-Manager wie Jfrog Artifactory. Sehen Sie sich einen Vergleich der beiden Tools für ein bisschen mehr Hintergrund an: http://inedo.com/support/kb/1115/a-comparison-artifactory-vs-proget –

Antwort

24

Dies ist, was wir das letzte Mal fand heraus, dass wir die NuGet Unterstützung in Artifactory vs. Nexus verglichen (Disclaimer - ich mit JFrog bin):

  1. In Artifactory die NuGet Unterstützung natürlich in das Produkt integriert ist , was die Verwaltung erheblich vereinfacht - markieren Sie einfach ein lokales Repository, wenn NuGet aktiviert ist, oder legen Sie die Remote-URL für ein Remote-Repository fest. Mehrere NuGet-Repositories können einfach unter einem einzigen virtuellen NuGet-Repo aggregiert werden - derselbe Ansatz, der mit jedem anderen Repo in Artifactory verwendet wird; In Nexus müssen Sie einen neuen Repository-Typ definieren, einen neuen dedizierten Sicherheitsbereich einrichten. Wenn Sie ein vorhandenes Repository benötigen, um auch auf NuGet-Anfragen zu antworten, müssen Sie eine spezielle Fassade hinzufügen. Dies ist ein allgemeiner Ansatz in Nexus, bei dem jeder neue Repository-Typ (z. B. P2) mehrstufige Konfigurationsänderungen erfordert.

  2. Es gibt absolut keine Integration für NuGet-Pakete in der Nexus-Benutzeroberfläche. Sie können nicht einmal nach NUGet-Artefakten suchen, was für die Verwaltung und Wartung von entscheidender Bedeutung ist (weshalb die Suche nur aus Visual Studio nicht ausreicht). Dies ist hauptsächlich darauf zurückzuführen, dass Nexus stark auf Maven und Maven ausgerichtet ist. In Artifactory können Sie NuGet-Pakete wie alle anderen Artefakte suchen und verwalten. Sie können Informationen aus den nuspec-Metadaten in the UI anzeigen und sogar den Inhalt einzelner Dateien in einem NuPkg-Paket anzeigen und deren Inhalt prüfen.

  3. Die Sicherheitsintegration ist auch einfacher in Artifactory - es ist nicht notwendig, einen speziellen Schlüssel manuell zu generieren, aber der Schlüssel ist nur die Kombination aus Benutzername und Passwort oder ein sicheres Passwort. Dies ist besonders nützlich, wenn Sie möchten, dass die NuGet-Passwörter Ihrer Benutzer mit der MS-AD/LDAP-Integration von Artifactory synchronisiert werden. In Nexus verwendet NuGet einen isolierten Sicherheitsbereich.

  4. Artifactory implementiert die komplette Palette von NuGet Durchsuchungen, einschließlich der eher esoterischen, aber nützliche Anwendungsfälle, und die zugrunde liegende Implementierung verwendet eine Kombination von In-Memory-Caches und persistent, vorausberechnet, durchsuchbare Eigenschaften sicher NuGet Abfragen machen sind sehr schnell und skalierbar, selbst für ein riesiges Repository; Nicht sicher, ob Nexus ähnliche Optimierungen verwendet.

Ich hoffe, dass das hilft.

PS. NuGet-Unterstützung ist Teil der Pro-Versionen von Artifactory und kostenlos in Nexus OSS since september 2014 enthalten.

+1

+1: Während ich deine Antwort sehr schätze (als eine Person aus der Firma, die Artifactory entwickelt), habe ich eine kleine Bemerkung: Es wird nicht sofort klar, ob die NuGet-Unterstützung frei ist oder nicht. Vielleicht könnten Sie Ihre Antwort ändern, um dies zu reflektieren? – carlspring

+3

Danke, ich habe das zu meiner Antwort hinzugefügt. –

+0

Stimmt es, dass die NuGet-Unterstützung nur Teil der Pro-Version von Artifactory ist? Es sieht so aus, als ob es ab Version 2.9 von Nexus kostenlos ist, laut http://books.sonatype.com/nexus-book/reference/_introduction_6.html – antwarpes

10

Nexus unterstützt NuGet und Sie können Ihre NuGet-Repositorys direkt darin hosten oder per Proxy-Server nutzen. Schau mal here.

Ich bin ein Maven und Nexus Fan, also bin ich voreingenommen. Ich habe Artefactory benutzt. Es ist ein gutes Werkzeug, aber ich fand Nexus zu der Zeit viel besser. Ich glaube, dass die NuGet-Funktion auch in der OSS-Version verfügbar ist, aber Sie sollten dies vielleicht noch einmal überprüfen.

Ich werde nicht argumentieren, warum und wenn Nexus besser ist als Artifactory, wie es nicht fair wäre und nur Flammenkriege verursachen würde. Meine eigene Argumentation ist folgende: Die Sonatype-Typen sind diejenigen, die hinter Maven, Nexus und Maven Central stehen. Dies stellt sie in den Mittelpunkt der Dinge und daher würde ihr Wissen immer tiefer in Bezug auf die Interna dieser Werkzeuge und ihre Interoperabilität sein.

Wenn Sie mit Nexus vertraut und vertraut sind, sehe ich ehrlich gesagt keinen Grund für Sie, um zu wechseln. Sie können jedoch selbst entscheiden. Schau mal here.

+7

Artifactory immer zur Verfügung gestellt Dateisystem-Speicheroption (und es war immer die Empfehlenswert). Sonatypes tiefe Verbundenheit mit Maven hält sie zurück, wenn es darum geht, verschiedene Technologien und Werkzeuge zu unterstützen. Z.B. sie erlauben immer noch Maven-Layout nur für Gradle und Ivy! Maven Expertise ist nicht etwas, mit dem man winken kann, wenn man über NuGet suppory spricht. – JBaruch

+0

@JBaruch Ich glaube nicht, dass es so war. Anfangs (wenn ich mich richtig erinnere, aber bitte zögern Sie nicht, mich zu korrigieren), wurden alle Artefakte in der Datenbank gespeichert. Später haben sie es geändert. – carlspring

+4

Ich korrigiere dich, du liegst falsch. Nehmen Sie kein FUD, das Sie im Sonatype-Blog lesen, für selbstverständlich. – JBaruch