Nous utilisons Maven pour un grand processus de construction (> 100 modules). Nous stockons nos dépendances externes dans le contrôle de code source et les utilisons pour mettre à jour un dépôt local.
Cependant, nous sommes prêts à passer à un dépôt local qui peut mettre en cache central afin de ne pas avoir à télécharger de manière proactive toutes les tierces parties (mais nous pouvons toujours avoir un dépôt local à partir duquel tirer). De plus, nous souhaitons publier nos artefacts de build internes à partir d'une build de nuit afin que les développeurs n'aient pas à construire le monde.
Nous envisageons Nexus et Artifactory. Quelles sont les raisons de préférer l'un à l'autre? Y en a-t-il d'autres que nous devrions envisager?
maven-2
nexus
artifactory
John Stauffer
la source
la source
Réponses:
Je ne connais pas Artifactory mais voici mes raisons d'utiliser Nexus:
la source
Je suis sûr que si vous ne parlez que de stocker des binaires à partir de "
mvn deploy
", les deux fonctionneront très bien.Nous utilisons Artifactory très largement avec toutes les mises à niveau en cours de route. Beaucoup de projets, de nombreux snapshots déployés et des dépôts externes par proxy. Pas un seul problème. J'ai du mal à expliquer comment d'autres personnes rencontrent des problèmes avec sa base de données, son indexation ou quoi que ce soit d'autre. Rien de tel ne nous est jamais arrivé. De plus, Artifactory permet de stocker des données sur un disque et d'utiliser uniquement une base de données pour stocker des métadonnées, c'est assez flexible ( voir plus ici ).
Ce qui rend ces applications très différentes, c'est leur approche d'intégration avec d'autres outils et technologies de construction.
Nexus et Sonatype sont à peu près verrouillés sur Maven et m2eclipse. Ils ignorent tout le reste et n'ont commencé que récemment à travailler sur leur propre intégration propriétaire Hudson (voir leur webinaire Maven 3 ).EDIT: Ce n'est plus vrai à partir de 2017 Nexus offre un support beaucoup plus large pour les autres outils de construction Fin de l'éditionArtifactory fournit une intégration impressionnante de Hudson, TeamCity et Bamboo , ainsi que le support Gradle / Ivy . Ainsi, alors que Nexus ne vous donne rien une fois que vous sortez de la «zone de confort» de Sonatype (Maven, m2eclipse), Artifactory embrasse et collabore avec tous les principaux outils de construction.
En fait, être capable de déployer des artefacts de construction à partir d'Hudson, lorsque le travail est terminé, et non par "
mvn deploy
" est une énorme différence: le plugin Artifactory Hudson effectue un déploiement de type atomique de tous les artefacts à la fois , uniquement lorsqu'un travail de construction s'est terminé avec succès. "mvn deploy
" s'exécute après chaque module et peut déployer un ensemble partiel d'artefacts si une tâche de construction échoue au milieu. Déployer à partir de Maven à la fin du module et non à partir d'un serveur de build à la fin du travail est vraiment une mauvaise chose à faire.Comme vous le voyez, Artifactory pense "en dehors de la boîte" tandis que Nexus pense "à l'intérieur de la boîte" et ne se soucie que des artefacts Maven et Maven.
Une autre chose qui rend Artifactory plus accessible est leur solution Artifactory Online basée sur le cloud . Pour environ 80 $ par mois, vous avez votre propre instance Artifactory, pas besoin de lui dédier un serveur.
Artifactory a une API REST simple et directe , je ne sais pas comment cela fonctionne pour Nexus. Edit Nexus dispose également d'une API REST que vous pouvez également utiliser facilement.
Pour résumer, pour le stockage de base des artefacts Maven, je pense que les deux vont bien.
Mais alors que Nexus cesse d'être strictement un "gestionnaire de référentiels Maven", Artifactory continue encore et encore, étant un "stockage binaire" général pour les binaires de tout type, de tout outil de construction et serveur CI.la source
Artifactory prend en charge les backends de stockage de système de fichiers et de base de données. Le stockage est basé sur la somme de contrôle et les binaires identiques ne sont stockés qu'une seule fois, quel que soit le nombre de fois qu'ils apparaissent dans le dépôt, ce qui rend Artifactory plus efficace en termes de stockage. Le déplacement et la copie sont également très bon marché en raison de cette architecture (dans Nexus, il n'y a pas de REST pour déplacer / copier - vous devez déplacer des éléments sur le système de fichiers, puis exécuter des actions correctives sur le dépôt pour lui faire savoir que le contenu a changé).
Un autre facteur de différenciation important est qu'Artifactory a une intégration unique avec Hudson et TeamCity pour capturer des informations sur les artefacts déployés, les dépendances résolues et les données d'environnement associées aux exécutions de build, ce qui offre une traçabilité complète de la build.
la source
Artifactory stocke les artefacts dans une base de données, ce qui signifie qu'en cas de problème, tous vos artefacts ont disparu. Nexus utilise un fichier plat pour vos précieux artefacts afin que vous n'ayez pas à vous soucier de leur perte.
la source
Si vous avez besoin des fonctionnalités "Pro" de l'un ou l'autre (par exemple, mise en dépôt, promotion d'artefacts, NuGet), vous devez prendre en compte les différents modèles de tarification, qui sont affichés sur leurs sites Web.
En résumé:
Quel que soit le nombre d'utilisateurs que vous avez, Nexus Pro offre un service d'assistance qui équivaut globalement au "Silver Value Pack" d'Artifactory à 7 450 $ / an.
7450 $ / an vous permettront d'acheter environ 67 sièges Nexus Pro (1-50 @ 108 $, le reste @ 120 $).
Sur le plan du prix et du support seuls, Nexus Pro a du sens jusqu'à ce que vous atteigniez 67 utilisateurs, auquel cas Artifactory devient l'option la moins chère.
Si vous faites tout le soutien en interne; cependant, ce point magique est d'environ 23 utilisateurs (l'offre de support la plus basique d'Artifactory est de 2750 $ / an).
la source
J'ai récemment fait des recherches sur Artifactory 2 et Nexus 1.3. Je vais lister ici les principales différences que j'ai trouvées:
La comparaison la plus complète: http://binary-repositories-comparison.github.io/
la source
Vous devriez utiliser Artifactory Sa dernière version a été un véritable saut Vous pouvez sauvegarder de manière incrémentielle vos référentiels, ce qui signifie que vous pouvez enregistrer et maintenir tous vos artefacts. Son interface Web est facile à utiliser et est vraiment facile à configurer. sort sa nouvelle version 2.0
la source
Du point de vue des apprenants, je note certaines différences spécifiques entre les deux.
la source
Mis à part toute politique / religion, les licences font une différence pour certaines organisations.
Nexus est
GPLmaintenantAGPLv3et maintenant Eclipse Public License (EPL) .Artifactory est une
licence ApacheLGPLv3 sous licence à partir de la version 2.1 du produit.Vous pouvez également envisager Archiva , juste à titre de comparaison. Il s'agit d'une licence Apache 2.0.
la source
Je vois que l'utilisation de Nexus augmente, tandis que l'utilisation artificielle reste généralement stable.
L'image est prise d'ici http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
Il existe également une comparaison matricielle http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
la source
Artifactory et Nexus ont un ensemble de fonctionnalités plus ou moins similaires, mais la prise en charge LDAP d'Artifactory le rend plus attrayant par rapport à Nexus. Bien que Nexus ait également un support LDAP mais en version payante :-(
la source
Hmmm ... mon expérience avec les artificiels est horrible ... mais je suis un débutant relatif alors prenez-le avec un grain de sel. Ma plainte générale est que les fichiers jar récemment téléchargés sur Artifactory ne semblent pas être indexés immédiatement - comme pendant des heures - et il ne semble pas y avoir de bon moyen de le forcer. J'ai essayé diverses choses qui semblaient devoir fonctionner, mais je ne l'ai pas fait. J'ai travaillé avec m2eclipse, ajoutant des dépendances à un projet que je convertis à partir de fourmi. Lorsque j'essaie d'ajouter un pot que je viens d'ajouter à l'artificiel, je m'attends à ce qu'il apparaisse comme un choix dans le sélecteur, mais ce n'est pas le cas.
un collègue m'a dit qu'ils avaient installé nexus et jusqu'à présent ils l'aiment ... mais je ne peux pas encore en garantir. Je suis sur le point de l'installer sur une machine Linux dès qu'il pourra m'en trouver une.
la source