Pregunta

Soy un gran admirador de Capistrano pero necesito desarrollar un script de implementación automatizado para una tienda solo para Java. He mirado a Ant y Maven y no parecen estar bien orientados a la administración remota como lo está Capistrano: parecen mucho más centrados en simplemente crear y empaquetar aplicaciones. ¿Existe una herramienta mejor por ahí?

¿Fue útil?

Solución

No creo que haya una aplicación similar a Capistrano para aplicaciones web Java, pero eso realmente no debería evitar que la uses (o alternativas como Fabric) para implementar tus aplicaciones. Como ya ha dicho, Ant es más un reemplazo para GNU Make, mientras que Maven es principalmente una aplicación de gestión de dependencias / desarrollo.

Dado que las aplicaciones web Java son gracias al contenedor .war menos dependiente de las bibliotecas externas, puede (dependiendo de su servidor de aplicaciones) hacer que la implementación de una aplicación sea tan fácil como ejecutar una simple solicitud HTTP PUT.

Pero si necesita pasos adicionales, Fabric ha funcionado muy bien para mí hasta ahora y supongo que Capistrano también ofrece operaciones genéricas de comando, poner y obtener shell. Por lo tanto, no buscaría demasiado tiempo una alternativa si lo que ya tiene funciona :-)

Otros consejos

Creo que ese control (ver: http://controltier.org ) es lo que está buscando. Aunque el controlador no necesita ser utilizado exclusivamente para implementaciones de Java.

Vea este extracto de los documentos (consulte: documentación del nivel de control ):

  

¿ControlTier es lo mismo que Capistrano, Fabric o Func?

     

En sus conceptos más fundamentales,   ControlTier, Capistrano, Fabric y   Func son herramientas similares. Mie   definitivamente llame a Capistrano, Fabric,   y envío de comandos básicos de Func   Marcos.

     

Sin embargo, ControlTier, por   diseño, va mucho más allá de lo que estos   otras herramientas proporcionan. La automatización   bibliotecas y las herramientas basadas en web que   ControlTier proporciona están diseñados para   le permite construir sistemas de automatización completos   listo para su uso por empresa o   equipos de operaciones web a gran escala.   También hay características como   manejo de errores y registro centralizado   que simplemente no están en el alcance de otros   herramientas de despacho de comandos.

     

Además, Capistrano es una herramienta basada en Ruby   que se centra principalmente en las necesidades   de la comunidad de Ruby on Rails.   ControlTier, mientras está escrito en Java,   no requiere que sepas que Java   úsalo. De hecho, puedes usar lo que sea   lenguajes de script que eres   cómodo con (incluido el rubí).   ControlTier intenta ser como lenguaje   y plataforma (Linux, Unix, Windows,   etc.) lo más neutral posible.

En mi trabajo utilizamos Capistrano exclusivamente para implementar todas nuestras aplicaciones Java. Definitivamente es posible.

Utilizo una receta capistrano para construir dspace (una aplicación web de Java, que a su vez usa Maven) de la fuente: Instalación de dspace usando capistrano

Capistrano podría implementar todas las aplicaciones web básicas. Las implementaciones para los diferentes idiomas son casi las mismas:

  1. código de actualización
  2. enviar el código al servidor de producción
  3. prepare los archivos de configuración para esta implementación
  4. reiniciar el servidor. (thin, nginx, tomcat)

en mi empresa, utilizamos Capistrano para implementar aplicaciones java, Vuejs, php, ruby, python.

Lo interesante es que la idea de Capistrano de un repositorio supone que se trata de un SCM (Source Control Manager). La estructura en el servidor y las versiones asociadas de la aplicación funcionan en el origen de la aplicación. Esto tiene sentido para un lenguaje interpretado.

Sin embargo, en un lenguaje compilado como Java, el control de versiones y la ramificación se produce antes de la implementación y para el momento en que se compila y construye la aplicación, el sistema de control de origen ya se ha quedado atrás y el resultado es un jar o tar versionado para contener la aplicación. Por lo general, este tarball (jar + config) se publica en un repositorio de artefactos Maven como Nexus o Artifactory.

Sorprendentemente, este repositorio de artefactos se asigna muy bien al repositorio de Capistrano. En lugar del SCM, podemos tratar este tarball como el SCM (la fuente a ser versionada). Con esto en mente, he implementado un complemento Capistrano SCM para repositorios de artefactos Maven . Es nuevo pero funciona bastante bien.

Unifica nuestros proyectos Ruby y Java en una sola herramienta, y lo más importante, aporta el poder del SSHKit y el rastrillo de Capistrano a nuestros proyectos Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top