Implantação de arquivo war no Tomcat
-
02-07-2019 - |
Pergunta
Existe uma maneira de implantar um determinado arquivo de guerra no servidor Tomcat? Eu quero fazer isso sem usar a interface web.
Solução
Apenas o arquivo de guerra no $ TOMCAT_HOME / webapps /. Tomcat irá implantar o arquivo de guerra por explodir-lo automaticamente. FYI -. Se você quiser, pode fazer atualizações diretamente para o diretório explodiu, o que é útil para o desenvolvimento
Outras dicas
Existem várias maneiras de implantar um webapp Tomcat:
- Dropping em $ CATALINA_HOME / webapps, como foi já mencionado.
- Usando os scripts de construção para implantar automaticamente através da interface gerente (que vem com o Tomcat). Aqui estão as duas maneiras
- para Maven : usar o plugin tomcat. Você não precisa incluí-lo em
pom.xml
, apenas emitir omvn tomcat:deploy
objetivo, o plugin está incluído na Maven 2. Isso pressupõe vários padrões explicado no documentação , você pode configure o comportamento napom.xml
. Há outros objetivos que permitem implantar como um arquivo explodiu etc . - para Ant : algo como isto:
- para Maven : usar o plugin tomcat. Você não precisa incluí-lo em
<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 aqueles que exigem que você tenha uma configuração de usuário Tomcat. Vive $CATALINA_BASE/conf/tomcat-users.xml
, mas desde que você já sabe como usar a interface web, eu suponho que você sabe como configurar os usuários e senhas.
Nós nunca usar a interface web, não gosto disso. As guerras são descartados nos webapps e server.xml editado como necessário. Você precisa saltar-lo se você editar o server.xml, mas o arquivo de guerra deve ser pego automagicamente. Em geral, excluir o diretório expandido a partir da primeira guerra para que não haja confusão de onde os componentes vieram.
Você pode editar o conf / server.xml e adicione uma entrada como esta apontando para seu diretório guerra
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:\work\learn\jsp\strutsDisplayTag"
workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
MAIS você pode copiar o arquivo .WAR para o diretório webapps do tomcat.
O Tomcat Pacote Deployer cliente parece ser o que você precisa instalar em um servidor remoto a partir da linha de comando. A partir da página:
Este é um pacote que pode ser usado para validar, compilação, compressa para .WAR e aplicações Web Deploy a produção ou desenvolvimento Tomcat servidores. Deve-se notar que esse recurso usa o Tomcat Manager e, como tal, o alvo Tomcat servidor deve estar em execução.
Você também pode tentar este script de linha de comando para gerenciar tomcat chamado tomcat-gerente. Ele requer Python, e fala com a aplicação Gestor incluído no tomcat via HTTP. Você pode fazer coisas a partir de um shell * nix como:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp
e
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war