Estamos usando Maven para un gran proceso de construcción (> 100 módulos). Hemos estado almacenando nuestras dependencias externas en el control de código fuente y usándolo para actualizar un repositorio local.
Sin embargo, estamos listos para pasar a un repositorio local que puede almacenar en caché central para que no tengamos que descargar de forma proactiva todos los terceros (pero aún podemos tener un repositorio local del que extraer). Además, queremos publicar nuestros artefactos de compilación internos a partir de una compilación nocturna para que los desarrolladores no tengan que construir el mundo.
Estamos considerando Nexus y Artifactory. ¿Cuáles son las razones para preferir una sobre la otra? ¿Hay otros que deberíamos considerar?
fuente
Respuestas:
No sé sobre Artifactory, pero estas son mis razones para usar Nexus:
fuente
Estoy seguro de que si solo habla de almacenar binarios de "
mvn deploy
" ambos funcionarán bien.Usamos Artifactory ampliamente con todas las actualizaciones en el camino. Muchos proyectos, numerosas instantáneas implementadas y repositorios externos con proxy. Ni un solo problema. Me resulta difícil explicar cómo otras personas experimentan problemas con su base de datos, indexación o cualquier otra cosa. Nunca nos ha pasado nada parecido. Además, Artifactory permite almacenar datos en un disco y solo usar una base de datos para almacenar metadatos, es bastante flexible ( ver más aquí ).
Lo que hace que esas aplicaciones sean muy diferentes es su enfoque hacia la integración con otras herramientas y tecnologías de construcción.
Nexus y Sonatype están prácticamente bloqueados en Maven y m2eclipse. Ignoran cualquier otra cosa y solo recientemente comenzaron a trabajar en su propia integración patentada de Hudson (consulte su seminario web Maven 3 ).EDITAR: Esto ya no es cierto a partir de 2017, Nexus brinda un soporte mucho mayor para otras herramientas de compilación Fin de la ediciónArtifactory proporciona una increíble integración de Hudson, TeamCity y Bamboo , y compatibilidad con Gradle / Ivy . Entonces, aunque Nexus no le brinda nada una vez que sale de la "zona de confort" de Sonatype (Maven, m2eclipse), Artifactory adopta y colabora con todas las principales herramientas de construcción.
De hecho, poder implementar artefactos de compilación desde Hudson, cuando el trabajo ha terminado, y no por "
mvn deploy
", es una gran diferencia: el complemento Artifactory Hudson realiza una implementación de tipo atómico de todos los artefactos a la vez , solo cuando un trabajo de compilación finalizó correctamente. "mvn deploy
" se ejecuta después de cada módulo y puede implementar un conjunto parcial de artefactos si un trabajo de compilación falla en el medio. Implementar desde Maven al finalizar el módulo y no desde un servidor de compilación al finalizar el trabajo es realmente algo malo.Como ves, Artifactory piensa "fuera de la caja" mientras que Nexus piensa "dentro de la caja" y solo se preocupa por los artefactos Maven y Maven.
Otra cosa que hace que Artifactory sea más accesible es su solución Artifactory Online basada en la nube . Por alrededor de $ 80 al mes, tiene su propia instancia de Artifactory, sin necesidad de dedicarle ningún servidor.
Artifactory tiene una API REST simple y directa , no sé cómo funciona para Nexus. Edit Nexus también tiene una API REST que también puede usar fácilmente.
En resumen, para el almacenamiento básico de artefactos de Maven, creo que ambos están bien.
Pero mientras Nexus deja de ser estrictamente un "administrador de repositorio de Maven", Artifactory sigue y sigue, siendo un "almacenamiento de binarios" general para binarios de cualquier tipo, desde cualquier herramienta de compilación y servidor de CI.fuente
Soportes Artifactory ambos archivos del sistema y backends de almacenamiento de base de datos. El almacenamiento se basa en la suma de comprobación y los binarios idénticos se almacenan solo una vez, sin importar cuántas veces aparezcan en el repositorio, lo que hace que Artifactory sea más eficiente en cuanto al almacenamiento. Mover y copiar también son muy baratos debido a esta arquitectura (en Nexus no hay REST para mover / copiar; tienes que mover cosas en el sistema de archivos y luego ejecutar acciones correctivas en el repositorio para que sepa que el contenido ha cambiado).
Otro diferenciador importante es que Artifactory tiene una integración única con Hudson y TeamCity para capturar información sobre artefactos implementados, dependencias resueltas y datos del entorno asociados con ejecuciones de compilación, lo que proporciona una trazabilidad completa de compilación.
fuente
Artifactory almacena los artefactos en una base de datos, lo que significa que si algo sale mal, todos tus artefactos desaparecen. Nexus utiliza un archivo plano para sus preciosos artefactos, por lo que no tiene que preocuparse de que se pierdan.
fuente
Si necesita las características "Pro" de cualquiera (por ejemplo, repositorios de prueba, promoción de artefactos, NuGet), debe considerar los diferentes modelos de precios, que se muestran en sus sitios web.
En resumen:
No importa cuántos usuarios tenga, Nexus Pro ofrece un servicio de asistencia que equivale en líneas generales al "Paquete Silver Value" de Artifactory de $ 7,450 / año.
$ 7,450 / año le permitirá comprar aproximadamente 67 asientos Nexus Pro (1-50 a $ 108, el resto a $ 120).
Entonces, solo en precio y soporte, Nexus Pro tiene sentido hasta que llegue a 67 usuarios, momento en el que Artifactory se convierte en la opción más barata.
Si está haciendo todo el apoyo en la empresa; sin embargo, ese punto mágico son unos 23 usuarios (la oferta de soporte más básica de Artifactory es de $ 2,750 / año).
fuente
Recientemente, investigué un poco sobre Artifactory 2 y Nexus 1.3. Enumeraré aquí las principales diferencias que encontré:
La comparación más completa: http://binary-repositories-comparison.github.io/
fuente
Deberías usar Artifactory Su última versión fue un gran salto.Puedes hacer copias de seguridad incrementales de tus repositorios, lo que significa que puedes guardar y mantener todos tus artefactos.Tiene una interfaz de usuario web fácil de usar y es muy fácil de configurar, lo disfruté mucho. saca su nueva versión 2.0
fuente
Desde el punto de vista de los estudiantes, noto algunas diferencias específicas entre los dos.
fuente
Dejando a un lado la política / religión, la concesión de licencias marca la diferencia para algunas organizaciones.
Nexus es
GPLahoraAGPLv3y ahora Eclipse Public License (EPL) .Artifactory tiene
licenciaLGPLv3 deApache apartir de la versión 2.1 del producto.También puede considerar Archiva , solo por el bien de la comparación. Tiene licencia de Apache 2.0.
fuente
Veo que el uso de Nexus está creciendo, mientras que el uso de Artifcatory generalmente se mantiene estable.
La imagen se toma desde aquí http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
También hay una comparación de matrices http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
fuente
Tanto Artifactory como Nexus tienen un conjunto de características más o menos similares, pero el soporte LDAP de Artifactory lo hace más atractivo que Nexus. Aunque Nexus también tiene soporte LDAP pero en versión paga :-(
fuente
Hmmm ... mi experiencia con los artefactos es terrible ... pero soy un novato relativo, así que tómalo con un grano de sal. Mi queja general es que los archivos jar cargados recientemente en Artifactory no parecen indexarse de inmediato, como en horas, y no parece haber una buena manera de forzarlo. Probé varias cosas que parecían que deberían haber funcionado, pero no lo hicieron. He estado trabajando con m2eclipse, agregando dependencias a un proyecto que estoy convirtiendo de ant. Cuando intento agregar un frasco que acabo de agregar al artefactor, espero que aparezca como una opción en el selector, pero no es así.
un compañero de trabajo me dijo que habían instalado nexus y que hasta ahora les gusta ... pero todavía no puedo dar fe de ello. Estoy a punto de instalarlo en una caja de Linux tan pronto como pueda encontrarme uno.
fuente