[tomcat][java] Deploy utilizando ANT script

14 10 2013

Problema

Preciso fazer um deploy de uma aplicação WAR no Tomcat utilizando ANT script.

Solução

A solução presume que você já tem os scripts de compilação e algumas variáveis você terá que editar na mão.

1) Definir permissões para o usuário no Tomcat

Editar o arquivo de usuário na pasta do Tomcat criando um usuário com as seguintes roles :

  • manager-script: libera acesso para executar script
  • manager-gui: libera acesso para GUI/manager

arquivo: $CATALINA_HOME/conf/tomcat-users.xml

<?xmlversion='1.0'encoding='utf-8'?>
<tomcat-users>
     <user username="tomcat" password="mypassword" roles="manager-script, manager-gui"/>
</tomcat-users>

2) Re-iniciar Tomcat e verificar se o usuário esta OK

Acessar: http://localhost:8780/manager/html  e logar com o usuário criado acima.

3) Construir um script ANT para fazer o deploy3.1) Definindo propriedades

arquivo: deploy.properties

#build.properties file
project-name=MyProject
tomcat-manager-url=http://localhost:8080/manager
tomcat-manager-username=tomcat
tomcat-manager-password=mypassword
web.libs.dir=C:\Program Files\apache-tomcat-6.0.35\lib\

3.2) Definindo script

arquivo: deploy.xml

<?xmlversion="1.0"encoding="UTF-8"?>
<project name="deploy-tomcat-demo" default="deploy" basedir="../">
   <property file="script/deploy.properties" />
   <property name="war-file-name" value="../target/package/MyProject.war" />
   <path id="deploy.classpath">
      <fileset dir="${web.libs.dir}">
         <include name="catalina-ant.jar" />
      </fileset>
   </path>
   <taskdef name="start" classname="org.apache.catalina.ant.StartTask" classpathref="deploy.classpath" />
   <taskdef name="stop" classname="org.apache.catalina.ant.StopTask" classpathref="deploy.classpath" />
   <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="deploy.classpath" />
   <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="deploy.classpath" />
   <target name="stop" description="stop application in tomcat">
      <stop url="${tomcat-manager-url}" username="${tomcat-manager-username}" password="${tomcat-manager-password}" path="/${project-name}" />
   </target>
   <target name="start" description="start application in tomcat">
      <start url="${tomcat-manager-url}" username="${tomcat-manager-username}" password="${tomcat-manager-password}" path="/${project-name}" />
   </target>
   <target name="undeploy" description="undeploy from tomcat">
      <undeploy failonerror="no" url="${tomcat-manager-url}" username="${tomcat-manager-username}" password="${tomcat-manager-password}" path="/${project-name}" />
   </target>
   <target name="deploy" description="deploy to tomcat">
      <echo>deploying from client</echo>
      <deploy url="${tomcat-manager-url}" username="${tomcat-manager-username}" password="${tomcat-manager-password}" path="/${project-name}" war="file:${war-file-name}" />
   </target>
   <!-- ====================================================================== -->
   <!-- Package target -->
   <!-- ====================================================================== -->
   <target name="package" depends="clean, compile" description="Package the application">
      <mkdir dir="${build.package.dir}" />
      <war warfile="${build.package.dir}/${build.finalName}.war" webxml="WebContent/WEB-INF/web.xml" compress="true">
         <classes dir="${build.outputDir}" />
         <fileset dir="WebContent">
            <!-- Excluir web.xml que ja sera utilizado no comando war -->
            <exclude name="WEB-INF/web.xml" />
         </fileset>
      </war>
   </target>
</project>
Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: