119 votes

Devrions-nous utiliser Nexus ou Artifactory pour un Maven Repo?

Nous sommes à l'aide de Maven pour un grand processus de construction (> 100 modules). Nous avons été le stockage de nos dépendances externes de contrôle de source, et en utilisant la mise à jour d'un local repo.

Toutefois, nous sommes prêts à passer à un local repo qui peut cache central, de sorte que nous n'avons pas de manière proactive télécharger tous les 3ème parties (mais nous pouvons encore avoir un local repo pour tirer à partir d'). En outre, nous souhaitons publier notre internes de construire des artefacts à partir d'une nightly build afin que les développeurs n'ont pas à construire le monde.

Nous envisageons de Nexus et Artifactory. Quelles sont les raisons de préférer l'un sur l'autre? Il y a d'autres nous doivent être pris en compte?

119voto

Evgeny Goldin Points 1255

Je suis sûr que si on ne parle que de stocker des fichiers binaires à partir de "mvn deploy" les deux feront l'affaire.

Nous utilisons Artifactory très largement avec toutes les mises à jour en cours de route. Beaucoup de projets, plusieurs captures d'écran déployé et externes repos proxy. Pas un seul problème. J'ai du mal à expliquer comment d'autres personnes rencontrent des problèmes avec son DB, l'indexation ou quoi que ce soit d'autre. Rien de tel qu'il nous soit arrivé. Aussi, Artifactory permet de stocker des données sur un disque et de les utiliser uniquement une base de données pour le stockage des métadonnées, il est assez souple (voir plus ici).

Ce qui rend ces applications très différents, c'est leur attitude à l'égard de l'intégration avec d'autres outils de construction et de technologies. Nexus et Sonatype sont assez bien verrouillé sur Maven et m2eclipse. Ils ignorent rien d'autre, et seulement récemment commencé à travailler sur leur propre Hudson intégration (voir leur Maven 3 webinaire).

Artifactory offre une superbe Hudson, TeamCity et de Bambou, de l'intégration, et Gradle / Ivy soutien. Ainsi, alors que la Nexus vous donne rien, une fois que vous sortez de Sonatype "zone de confort" (Maven, m2eclipse), Artifactory embrasse et collabore avec tous les principaux outils de construction.

En fait, être en mesure de déployer construire des artefacts d'Hudson, lorsque le travail est terminé, et non pas par "mvn deploy" est une énorme différence: Artifactory Hudson plugin permet atomique-comme le déploiement de tous les objets à la fois, seulement quand une tâche est terminée avec succès. "mvn deploy" s'exécute après chaque module et peut déployer un ensemble partiel des artefacts si un build échoue travail dans le milieu. Le déploiement de Maven sur le module d'achèvement et non pas à partir d'un serveur de build sur l'achèvement du travail est vraiment une mauvaise chose à faire.

Comme vous le voyez, Artifactory pense "en dehors de la boîte", tandis que la Nexus pense "à l'intérieur de la boîte" et se soucie uniquement de Maven et artefacts Maven.

Autre chose qui rend Artifactory plus accessible est de leur nuage Artifactory solution en Ligne. Pour environ 80 $par mois, vous avez votre propre Artifactory exemple, pas besoin de dédier un serveur quelconque.

Artifactory a une simple API REST, je ne sais pas comment cela fonctionne pour les Nexus.

Pour résumer, pour le stockage de base de Maven artefacts je pense que les deux sont très bien. Mais alors que la Nexus s'arrête là strictement un "repository Maven manager", Artifactory va sur et sur, être un "Binaires" stockage pour les fichiers binaires de toute sorte, de toute outil de construction et de serveur CI.

76voto

Aaron Digulla Points 143830

Je ne sais pas à propos de Artifactory, mais voici mes raisons pour l'utilisation de Nexus:

  • Morts installation simple (et depuis la version 1.2, morts de mise à niveau simple, trop)
  • Très bonne INTERFACE utilisateur web
  • Facile à entretenir, presque pas de frais administratifs
  • Fournit vous avec les flux RSS de récemment installé, cassé des artefacts et des erreurs
  • Il peut regrouper plusieurs référentiels de sorte que vous pouvez mettre en miroir plusieurs sources, mais le besoin de seulement une ou deux entrées dans votre settings.xml
  • Le déploiement de Maven fonctionne hors de la boîte (pas besoin de WebDAV hacks, etc).
  • c'est gratuit
  • Vous pouvez rediriger les chemins d'accès (c'est à dire brisé pom.xml requiert un".b.c" à partir de "xxx"). Plutôt que de modifier le POM, vous pouvez corriger le bug dans le programme Nexus et rediriger la demande vers l'endroit où l'artefact est vraiment.

28voto

Yoav Landman Points 960

Artifactory prend en charge à la fois du système de fichiers et de stockage de base de données backends. Le stockage est en fonction de la somme de contrôle et identique binaires sont stockées qu'une seule fois, peu importe combien de fois qu'ils apparaissent dans les pensions de titres, ce qui rend Artifactory stockage plus efficace. Déplacer et copier sont également très bon marché en raison de cette architecture (dans le Nexus, il n'y a pas de REPOS pour déplacer/copier - que vous avez à déplacer des trucs sur le système de fichier, puis exécutez les actions correctives sur le repo de le faire savoir le contenu a changé).

Un autre facteur important de différenciation est Artifactory a l'intégration unique avec la baie d'Hudson et TeamCity pour capturer des informations sur déployé des artefacts, résolution des dépendances et des données sur l'environnement associés à la génération de pistes, qui fournit la construction complète de la traçabilité.

22voto

Brian Fox Points 3068

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.

8voto

Sergey Points 368

J'ai fait quelques recherches recenly sur Artifactory 2 et Nexus 1.3. Je vais lister ici les principales différences que j'ai trouvé:

  • Artifactory stocke les données dans la DB, la Nexus écrit directement au système de fichiers. Il y a des avantages. et les inconvénients. pour chaque approche. DB prend en charge les transactions, tandis que dans FS stockés les fichiers peuvent être accessibles directement.
  • Artifactory a plus particulièrement pour l'espace disque.
  • Artifactory a la prise en charge LDAP, tandis que la Nexus est-il uniquement dans la version payante. Sur l'autre main libre plugin LDAP pour le programme Nexus est disponible sur Google code.

Le plus complet de comparaison: http://docs.codehaus.org/display/MAVENUSER/Maven+Dépôt+Manager+Fonction+Matrice

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X