java - deployar - desplegar war en tomcat 8
Despliegue del archivo de guerra en Tomcat (6)
El paquete Tomcat Client Deployer parece ser lo que necesita implementar en un servidor remoto desde la línea de comandos. De la página:
Este es un paquete que se puede usar para validar, compilar, comprimir a .WAR e implementar aplicaciones web en servidores Tomcat de producción o desarrollo. Cabe señalar que esta característica utiliza el Administrador de Tomcat y, como tal, el servidor Tomcat de destino debe estar ejecutándose.
¿Hay alguna manera de desplegar un archivo war determinado en el servidor Tomcat? Quiero hacer esto sin usar la interfaz web.
Hay varias formas de implementar una aplicación web Tomcat:
- Entrando en $ CATALINA_HOME / webapps, como ya se mencionó.
- Usar sus scripts de compilación para implementarse automáticamente a través de la interfaz del administrador (que viene con Tomcat). Estas son las dos formas
- para Maven : use el plugin de tomcat. No necesita incluirlo en
pom.xml
, solo emita el objetivomvn tomcat:deploy
, el complemento está incluido en Maven 2. Esto supone varios valores predeterminados explicados en la documentación , puede configurar el comportamiento en elpom.xml
. Hay otros objetivos que le permiten implementar como un archivo descompuesto, etc. - para Ant : algo como esto:
- para Maven : use el plugin de tomcat. No necesita incluirlo en
<property name="manager.url" value="http://localhost:8080/manager"/> <property name="manager.username" value="manager"/> <property name="manager.password" value="foobar"/> <!-- Task definitions --> <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/> <taskdef name="list" classname="org.apache.catalina.ant.ListTask"/> <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/> <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/> <!-- goals --> <target name="install" depends="compile" description="Install application to servlet container"> <deploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}" localWar="file://${build.home}"/> </target> <target name="list" description="List installed applications on servlet container"> <list url="${manager.url}" username="${manager.username}" password="${manager.password}"/> </target> <target name="reload" depends="compile" description="Reload application on servlet container"> <reload url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/> </target> <target name="remove" description="Remove application on servlet container"> <undeploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/> </target>
Todos ellos requerirán que tenga una configuración de usuario de Tomcat. Vive $CATALINA_BASE/conf/tomcat-users.xml
, pero como ya sabes cómo usar la interfaz web, supongo que sabes cómo configurar los usuarios y las contraseñas.
Nunca usamos la interfaz web, no me gusta. Las guerras se eliminan en webapps y server.xml se editan según sea necesario. Necesitará rebotar si edita server.xml, pero el archivo de guerra debería recogerse automágicamente. Por lo general, eliminamos el directorio expandido desde la guerra primero para que no haya confusión sobre el origen de los componentes.
Simplemente copie el archivo war en el directorio $ TOMCAT_HOME / webapps /. Tomcat desplegará el archivo de guerra explotando automáticamente. FYI - Si lo desea, puede hacer actualizaciones directamente en el directorio explotado, que es útil para el desarrollo.
puede editar conf / server.xml y agregar una entrada como esta apuntando a su directorio war
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:/work/learn/jsp/strutsDisplayTag"
workDir="C:/work/learn/jsp/strutsDisplayTag/work" />
DE LO CONTRARIO, puede copiar su archivo .WAR en el directorio webapps de tomcat.
También puede probar este script de línea de comandos para administrar tomcat llamado tomcat-manager. Requiere Python y habla con la aplicación de administrador incluida con tomcat a través de HTTP. Puedes hacer cosas desde un shell * nix como:
$ tomcat-manager --user=admin --password=newenglandclamchowder /
> http://localhost:8080/manager/ stop /myapp
y:
$ tomcat-manager --user=admin --password=newenglandclamchowder /
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war