how deployer deployar deploy autodeploy java tomcat maven jenkins tomcat7

java - deployer - Jenkins auto deployment tomcat 7



tomcat 7 autodeploy (7)

Uso el complemento Hudson Post Build Task para ejecutar un curl en contra de la API / manager / text

Los complementos mencionados se pueden seleccionar e instalar de la lista de complementos disponibles en la configuración de Jenkins.

Una vez que haya instalado el complemento, solo tiene que habilitar la "tarea de compilación posterior" y agregar la siguiente línea:

curl -T - -u user:pass ''http://<tomcat-host>/manager/text/deploy?update=true&path=/<yourpath>'' < <path_to_war_file>

Por ejemplo:

curl -T - -u manager:123456 ''http://localhost:8080/manager/text/deploy?update=true&path=/slim'' < /target/dist/slim.war

También puede usar wget , pero con el comando de arriba, registra la salida y ve si hubo un problema con la implementación.

Aquí hay documentation relacionada con el servicio / manager / text

Estamos tratando de implementar un archivo war con Jenkins, pero parece que nada sucede.

El proyecto se construyó con éxito y estamos utilizando el plugin de implementación de Jenkins. Está configurado con las siguientes opciones:

Los pasos posteriores están configurados para "ejecutar independientemente del resultado de compilación".

He comprobado que las credenciales son correctas, ya que puedo acceder a la página del administrador en mi navegador.

Aquí está la última parte que produce Jenkins (Maven):

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:24.506s [INFO] Finished at: Tue Feb 14 12:10:45 UTC 2012 [INFO] Final Memory: 22M/52M [INFO] ------------------------------------------------------------------------ channel stopped Finished: SUCCESS

También puedo cambiar el archivo WAR / EAR a algo que no existe, y no me dará errores, lo cual es un poco extraño. ¿Qué estoy haciendo mal aquí?


¿Has usado el plugin Cargo ? Bueno, yo también tenía la misma configuración que tú, Jenkins, maven y tomcat. Pero cuando necesité implementar, simplemente estaba usando ese complemento. Ha pasado un tiempo en realidad, pero en Jenkins has podido ingresar líneas de comando rápido ¿no? Como mvn clean install? Entonces, lo que puedes hacer es simplemente configurar tu pom para el plugin Cargo y luego agregar esa línea a tu Jenkins:

mvn cargo:deploy -Pintegration

De esta forma, pude limpiar la instalación de mis compilaciones diariamente y desplegarlas en Tomcat. Después, estaba haciendo mis pruebas de descanso.


Estaba teniendo el mismo problema, y ​​en mi caso la ruta (relativa) al archivo WAR era incorrecta. Aparentemente, si no lo tiene exactamente correcto (debe ser relativo a la raíz del espacio de trabajo), el complemento de implementación fallará en silencio. En mi caso, el camino fue:

objetivo / lo que sea.war

Una vez que se arregló, me encontré con un problema diferente, ya que el complemento espera conectarse a la versión de administrador / texto de Tomcat Manager, en lugar de a la versión de administrador / html que normalmente configuro de manera predeterminada. Necesitará una línea en su archivo tomcat-users.xml como la siguiente:

<user username = "tomcat" password = "pencil" roles = "manager-script" />

(Esto se suma al rol de "administrador-guía" que probablemente ya haya configurado).

Una vez que se hicieron esos cambios, la compilación y la implementación funcionó bien.


Por lo que vale, la última versión del complemento Deploy para Jenkins parece necesitar solo la URL base. Entonces, para mí, era http://blah.com:8080

Antes de eso, probé una serie de otras opciones, incluyendo host-manager / html, host-manager / text


Suponiendo que Jenkins encuentre tu pom.xml para compilar. Establezca sus Objetivos y opciones en su configuración de Jenkins para compilar el paquete . Entonces Jenkins intentará encontrar su archivo war y desplegarlo. Buena suerte.


Traté de usar la solución de target / whatever.war pero no funciona, así que traté de usar * / .war y es trabajo

puede ver que en jenkins la guía definitiva EN Debe especificar dónde encontrar los archivos que desea en el espacio de trabajo del otro trabajo de compilación, y dónde debe colocarlos Jenkins en el espacio de trabajo de su proyecto actual. Puede ser una expresión regular flexible (como * / .war , para cualquier archivo WAR producido por el trabajo de compilación), o puede ser mucho más precisa (como gameoflife-web / target / gameoflife.war).

o en Implementar a Tomcat con el plugin DEPLOY


mantener los roles manager-gui, admin-gui para el usuario que se configuró la página de Jenkins

ejemplo:-

<tomcat-users> <user username="uname" password="pword" roles="manager-gui,admin-gui"/> </tomcat-users>