2011-08-18 10 views
16

Actualmente utilizamos FTP para mantener la distribución de artefactos de construcción y productos de terceros (solo para uso interno).Recomendar Build Artifact Repository Manager

Los artefactos son documentos (HTML/pdf/chm/...), libs (.dll/.so/.a/.jar/...), programas (.exe/.jar/...) Y algo mas. No están restringidos a Java/.NET y pueden provenir de diferentes culturas (firmware, controlador, dispositivo móvil/estación de trabajo, GUI, Win/Linux/Mac/Solaris/AIX, etc.).

Para la jerarquía se orginize usamos estos caminos:

 
ftp://3pp/VENDOR/PRODUCT/VERSION/... 
ftp://3pp/opensource/PACKAGE-x.x.x.tar.bz2 
ftp://dist/PRODUCT/VERSION/... 

Para mantener la descripción de los artefactos que utilizamos README y CAMBIOS archivos de prueba de fricción (reStructuredText).

¿Qué falta en este esquema?

  • Permisos faltantes (cualquiera puede dañar el almacenamiento).
  • Falta el seguimiento de la dependencia (por lo que cada archivo de compilación debe actualizarse si se modificó la dependencia de la versión).
  • Falta la actividad de búsqueda (parece que algunos archivos ya no son necesarios, pero no sabemos cuál).

No estoy buscando soluciones existentes. Algún administrador de paquetes como rpm/dpkg, escuchado sobre el repositorio de Maven, etc ...

Recomiende Build Artifact Repository Managers. También es bueno escuchar inconvenientes y restricciones.

ACTUALIZACIÓN

Respuesta

39

Está creando un repositorio de artefactos de software personalizado.Hay tres proyectos de código abierto que ya hacen esto:

Artifactory y Nexus versiones también han pagado.

Puede almacenar cualquier tipo de archivo en estos repositorios, y no necesita utilizar Maven. Puede implementar artefactos manualmente en ellos. Puede configurar el control de acceso de grano fino. Se integran bien con las herramientas de construcción automatizadas.

¡Creo que el uso de una de estas herramientas le ahorrará mucho esfuerzo!

Here matriz de comparación bastante imparcial (impulsada por la comunidad) entre los tres.

+1

** Apache Archiva ** solo está relacionado con el mundo de Java ... – gavenkoa

+1

Estas herramientas están integradas ** solo ** a las herramientas de compilación de Java ... – gavenkoa

+20

Absolutamente incorrecto. Puede almacenar cualquier tipo de artefacto de software en estos repositorios. Java puede tener las herramientas más maduras, pero no existen restricciones que le impidan usar estos repositorios con otras tecnologías. Eche un vistazo al libro de Sonatype sobre gestión de repositorios para comprender cómo funcionan los repositorios de artefactos y cómo puede integrarlos en su flujo de trabajo. http://www.sonatype.com/books/nexus-book –

0

con SVN + Apache (mod_dav_svn.so, mod_authz_svn.so) parece me sale:

  • Anónimo de sólo lectura acceso a través del protocolo HTTP con amplia r ange de clientes compatibles para descargar (wget/curl de GNU Make, tarea para Apache Ant).
  • fácil acceso mantenible de escritura para los usuarios/grupos (sintaxis fácil):

     
    [repo:/path] 
    user = rw 
    

    través de utilidad cadáver.

  • Integración con LDAP.

  • Historial de versiones (cuándo, qué y quién).
  • Operación atómica (evite las versiones simultáneas y la reversión en los errores).