¿Cuál es la diferencia entre Nexus y SVN?

Tanto SVN como Nexus se usan ampliamente como repository de código fuente durante el desarrollo y la integración. Dicho esto, ¿por qué necesitamos usar Nexus cuando podemos tener nuestros repos configurados a través de SVN? Incluso SVN tiene un esquema de control de versión adecuado y es ampliamente aclamado.

Despachado a través de Google, pero nada parece proporcionar una diferencia clara. Por favor aclarame

Imagina una fábrica de automobilees. En planes como este , sale un vehículo como este . SVN es como el archivador donde almacena los planos, mientras que Nexus es como el almacén donde almacena el producto terminado.

Ahora debería haber una correlación de 1 a 1 entre la input y la salida. Pero digamos que cambias algo sobre el entorno de la fábrica. Entonces, incluso si usa los mismos planos, el producto final puede ser diferente o incorrecto.

Por lo tanto, como regla general, es mejor trabajar con el producto final de Nexus tanto como sea posible, que ya se ha probado para determinar su calidad.

Espero que ayude.

Puede almacenar todo en subversión. Una verificación de subversión capturaría su sistema de files en un punto en el time. En mi opinión, este enfoque tiene dos problemas principales

  1. Los sistemas SCM generalmente están diseñados para almacenar datos textuales
  2. Almacenar versiones en su SCM crea un acoplamiento estrecho entre cómo se construye su software y cómo se implementa.

Subversion es uno de los pocos sistemas SCM que tiene un mecanismo eficiente para el almacenamiento de files binarys, pero para mí el factor determinante es el uso de SCM para el deployment. He visto equipos de desarrollo que no pueden actualizar desde herramientas como CVS y Subversion, porque estas herramientas se requieren directa o indirectamente para lanzar e instalar el software en los sitios de los clientes.

Si bien podemos labelr el código fuente en un momento dado, es muy importante mantener una copy del file binary que ha enviado a su cliente. El mismo código fuente rara vez crea exactamente la misma salida binaria. Por ejemplo, un file de metadatos puede contener una date de compilation, lo que da como resultado un file zip / tar que tiene el mismo resultado funcional, pero una sum de comprobación diferente. Los checksums son realmente importantes para auditar las implementaciones, para probar que se distribuyó el file correcto y, a veces, para realizar ingeniería inversa en la versión de lanzamiento.

En lugar de continuar una diatriba favorita, ofrezco una serie de artículos de blog sobre este tema:

  • Por qué Nexus para el no progtwigdor
  • Razones para usar un administrador de repository
  • Distribución de binarys: ¿por qué no utilizar un sistema de files compartido?
  • Beneficios de un gestor de repository parte 1
  • Beneficios de un gestor de repository parte 2 almacenamiento en caching y queueboración
  • Beneficios de un gestor de repository, parte 3 deployment de compilation continua

Subversion es la gestión del código fuente . Usted ingresa y retira sus files fuente desde allí, y puede diferenciar los files fuente basados ​​en text, le permite crear cnetworkingenciales en un lanzamiento completo y realizar una bifurcación.

Nexus generalmente se usa para la distribución de jarras. Puede almacenar artefactos, pero generalmente están comstackdos y, a diferencia de Subversion, puede replace un artefacto antiguo por uno nuevo y no tiene forma de rastrear los cambios.

Puede usar Subversion para el control de código fuente y luego usar Nexus para lo que es su propósito original: Almacenar files Jar comstackdos en un repository local de Maven.

¿Puedes almacenar files jar en Subversion? Claro que puedes, pero ¿qué te tiene? Los files Jar ocupan mucho espacio, y no se pueden ver los cambios de uno a otro con mucha facilidad. En cambio, ocupan una tonelada de espacio. No es inusual que las jarras ocupen del 80% al 90% de un repository de Subversion.

Es por eso que utilizamos algo como Nexus para almacenar nuestros flasks, y luego usamos Maven o Ant con Ivy para searchlos cuando hacemos nuestra compilation.

Ambos son ampliamente utilizados y ambos son repositorys … pero svn es un repository de código fuente donde nexus es un repository de artefactos (files binarys como jarras). Son sistemas muy complementarios.