2010-05-22 20 views
7

Estoy trabajando en un proyecto web Java que usa Maven para construir sus artefactos. Al final de la construcción de Maven, tenemos algunos archivos jar y war que tenemos que implementar en nuestro entorno de desarrollo/prueba.¿Qué usarías para las secuencias de comandos de implementación en Java?

En este momento estamos utilizando un script bastante fuerte hormiga que realiza varias tareas (en ambas máquinas Windows/Linux)

  • Inicia/Detiene los servicios de
  • copias/borra archivos
  • Construye un poco de materia y luego lo ejecuta
  • Etc

hormiga hace el trabajo bien - pero el guión es rápidamente volviendo muy grande, y para ser honesto, se siente inadecuado para la tarea en cuestión.

¿Hay otras alternativas? He oído hablar de Gant, pero no estoy seguro de que ese sea el camino correcto.

¡Gracias por tu ayuda!

EDITAR: después de más investigaciones, descubrí acerca de Gradle: parece una muy buena combinación de tareas de reutilización y permite la ejecución de scripts reales. Vale la pena leerlo.

+0

ive encontré el mismo problema, en el trabajo (linux env), utilizamos pequeños programas de Java para realizar el despliegue y monit secuencias de comandos para iniciar y detener los servicios, vinculados en un script de shell. todavía desordenado y realmente no resuelve tu problema en Windows ... – Dimitar

Respuesta

4

Sí, echar un vistazo a la Cargo plugin para el experto:

* Deploying to a running container 
* Generating a container configuration deployment structure 
* Merging WAR files 
* Starting and stopping a container 

Hudson - un motor de integración continua - se puede utilizar para lograr estas tareas también.

+0

sí, esa es una buena dirección. Pero todavía me faltan las partes copy/scp/sshexec que obtengo con Ant ... – Nadav

+0

que se hace de una manera diferente, a través de los servicios expuestos del servidor. Tomcat, por ejemplo, tiene la aplicación de administrador, y Hudson la usa. No sé cómo la carga hace su trabajo. – Bozho

0

Si es una tarea grande, siempre puede escribir tareas ant en Java o Jython y llamarlas desde hormiga.

3

El despliegue en general no es fácil (y a menudo muy específico) y mientras que Cargo maven plugin puede ayudar para el despliegue remoto de war/ear (si se implementa implementación remota para su servidor de aplicaciones), no creo que cubra todas tus necesidades En realidad, es difícil ser muy preciso ya que la pregunta es vaga, así que solo daré algunos consejos. Echar un vistazo a las soluciones como:

0

Esto parece ser un tema abierto en 2017, también. La búsqueda de "script de despliegue de Java" apunta primero a esta pregunta, y también a Ant y algunos otros artículos no relacionados.

El proyecto en el que estoy trabajando al momento de escribir estas líneas, tiene 6-7 archivos JAR que colocamos en lib/folder de tomcat, y 20-30 archivos WAR pequeños que colocamos en webapps /. Tenemos un script de despliegue que se descarga desde un servidor de Bamboo y expande un archivo que contiene todo, pero eso no se puede usar durante el desarrollo. Y desplegar todos estos manualmente es una pesadilla.

Así que comencé mi propio script de Python que inicialmente desplegaría varios JAR y WARS en una instancia de tomcat.

Ahora es una herramienta de implementación multiplataforma (probada en Windows y Mac), y un lenguaje y servidor independiente, configurable a través de un archivo JSON. Se puede:

  • copiar y borrar librerías y aplicaciones

  • Ejecutar local y remota (a través de SSH) comandos

  • Hacer pausas

Ya que se puede ejecutar comandos en el servidor remoto, puede hacer muchas cosas a través de los comandos de Shell (los utilizamos para iniciar/detener tomcat, esperar que comience/pare, borrar registros, etc.) .

La secuencia de comandos de implementación está en GitHub.

Cuestiones relacionadas