mightyoluap 3 de nov. de 2009
ESTRUTURA DO ANT:
< ?xml version=" 1.0" encoding=" iso-8859-1" ?>
< project name="MyProject" default="default" >
< !-- Property de url das aplicações no servidor de Aplicações Linux (Apache tomcat) -->
< property file="url.properties"/>
< !-- Property de configurações do banco do cliente -->
< property file="client.properties"/>
< !-- Diretório de principal -->
< property name="ver.dir" value="c:\opt\apps"/>
< !-- Diretório dos fontes do projeto -->
< property name="projt.dir" value="${ ver . dir } \projeto\src"/>
< !-- Diretório temporário de compilação -->
< property name="tmp.dir" value="${ ver . dir } \tmp"/>
< !-- Diretório de arquivos de customização das aplicações -->
< property name="custom.dir" value="${ ver . dir } \custommers"/>
< !-- Diretório das Skin dos sistemas -->
< !-- Essas skin podem ser: RYW, RY e BLU -->
< property name="skin.dir" value="${ ver . dir } \skins"/>
< !-- Diretório de destino das aplicações (bkp) -->
< property name="origin.dir" value="${ ver . dir } \origin"/>
< !-- Diretório de scripts que devem ser enviados para o cliente atualizar a base de produção -->
< property name="script.dir" value="${ ver . dir } \scripts"/>
< !-- ///////////////////////////////////////////////////////////////////////////////////////////// -->
< !-- ////////////////////////////////// Principais Targets /////////////////////////////////////// -->
< !-- ///////////////////////////////////////////////////////////////////////////////////////////// -->
< !-- Essas targets serão repetidas para cada um dos clientes -->
< !-- Gera o arquivo ${ name . client } .WAR -->
< target name="generateFiles">
< !-- Início da tarefa -->
< tstamp>
< format property="begin.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa iniciada em ${ begin . time } "/>
< echo message="Criando o arquivo ${ name . client } .WAR"/>
< !-- Cria o diretório de destino do ${ name . client } .WAR -->
< mkdir dir="${ origin . dir } "/>
< !-- Insere os arquivos de customização no diretório TEMP -->
< copy todir="${ tmp . dir } \web" overwrite="yes">
< fileset dir="${ custom . dir } \${ name . client } "/>
< /copy>
< !-- Cria o arquivos ${ name . client } .war -->
< jar destfile="${ origin . dir } \${ name . client } .war">
< fileset dir="${ tmp . dir } \web"/>
< /jar>
< !-- fim da tarefa -->
< tstamp>
< format property="end.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa finalizada em ${ end . time } "/>
< /target>
< !-- ========================================================================================= -->
< !-- Insere no ${ name . client } .WAR a Skin solicitada -->
< target name="changeSkin">
< !-- Início da tarefa -->
< tstamp>
< format property="begin.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa iniciada em ${ begin . time } "/>
< echo message="Customizing generated ${ name . client } .WAR to Selected Skin"/>
< !-- Atualiza o ${ name . client } .WAR com a skin que foi selecionada -->
< jar destfile="${ origin . dir } \${ name . client } .war" update="true">
< fileset dir="${ skin . dir } \${ skin . type } "/>
< /jar>
< !-- fim da tarefa -->
< tstamp>
< format property="end.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa finalizada em ${ end . time } "/>
< /target>
< !-- ========================================================================================= -->
< !-- Deploy da aplicação no Cliente -->
< target name="deployWar">
< !-- Início da tarefa -->
< tstamp>
< format property="begin.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa iniciada em ${ begin . time } "/>
< !-- Criação do diretório de destino no servidor de aplicação -->
< !-- Essa informação está definida no arquivo url.properties -->
< mkdir dir="${ deploy . path } "/>
< echo message="Fazendo deploy da aplicação do cliente ${ name . client } no diretório ${ deploy . path } "/>
< !-- Target de exclusão dos arquivos antigos no servidor de aplicação -->
< delete includeEmptyDirs="true">
< fileset dir="${ deploy . path } ">
< include name="**/*"/>
< /fileset>
< /delete>
< !-- Descompactação do ${ name . client } .war no diretório do servidor de aplicação -->
< unwar src="${ origin . dir } \${ name . client } .war" dest="${ deploy . path } "/>
< !-- fim da tarefa -->
< tstamp>
< format property="end.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa finalizada em ${ end . time } "/>
< /target>
< !-- ========================================================================================= -->
< !-- Atualiza banco e cria script para ser enviado -->
< target name="update.versao">
< !-- Início da tarefa -->
< tstamp>
< format property="begin.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa iniciada em ${ begin . time } "/>
< !-- Atualiza a base do cliente com a versao da aplicação -->
< !-- essa informações estão definidas no client.properties -->
< sql driver="${ driver } " url="${ url } " userid="${ user } " password="${ pwd } ">
update CR_VERSAO set CD_VERSAO_BASE = '${ timestamp } ';
< /sql>
< !-- Atualiza o arquivo .properties com a versão do cliente-->
< propertyfile file="${ ver . dir } /clientes.properties">
< entry key="${ version } " value="${ timestamp } " />
< /propertyfile>
< echo message="Gerando o arquivo de Atualização da versão no diretório: ${ script . dir } /${ name . client } /Atual/${ pasta } /versao.sql"/>
< !-- Cria o script de versão que deve ser executado no cliente -->
< echo file="${ script . dir } /${ name . client } /Atual/${ pasta } /versao.sql" message="update CR_VERSAO set CD_VERSAO_BASE = '${ timestamp } '; commit;"/>
< !-- Atualiza a pasta de scripts -->
< exec executable="svn" dir="${ script . dir } /${ name . client } /Atual/${ pasta } " failonerror="true">
< arg line="update"/>
< /exec>
< !-- Adiciona arquivo criado -->
< exec executable="svn" dir="${ script . dir } /${ name . client } /Atual/${ pasta } " failonerror="true">
< arg line="add versao.sql"/>
< /exec>
< !-- comita todas as alterações -->
< exec executable="svn" dir="${ script . dir } /${ name . client } /Atual/${ pasta } " failonerror="true">
< arg line="commit -m 'Alteração'"/>
< /exec>
< !-- fim da tarefa -->
< tstamp>
< format property="end.time" pattern="MM/dd/yyyy hh:mm:ss:SS aa"/>
< /tstamp>
< echo message="Tarefa finalizada em ${ end . time } "/>
< /target>
< !-- ///////////////////////////////////////////////////////////////////////////////////////////// -->
< !-- ////////////////////////////////Targets secundárias ///////////////////////////////////////// -->
< !-- ///////////////////////////////////////////////////////////////////////////////////////////// -->
< !-- Criação e Customização do ${ name . client } .war do McDonalds -->
< target name="McDonads" description="--> Tarefa de criação e customização do arquivo war do cliente McDonad's ">
< !-- Antcall passando o Nome do cliente -->
< antcall target="generateFiles">
< param name="name.client" value="McDonads"/>
< /antcall>
< !-- Antcall passando a skin do cliente -->
< antcall target="changeSkin">
< param name="skin.type" value="RYD"/>
< /antcall>
< /target>
< !-- Criação e Customização do ${ name . client } .war do Giraffas -->
< target name="Giraffas" description="--> Tarefa de criação e customização do arquivo war do cliente Giraffa's ">
< !-- Antcall passando o Nome do cliente -->
< antcall target="generateFiles">
< param name="name.client" value="Giraffas"/>
< /antcall>
< !-- Antcall passando o skin do cliente -->
< antcall target="changeSkin">
< param name="skin.type" value="RY"/>
< /antcall>
< /target>
< !-- Criação e Customização do ${ name . client } .war do Bobs -->
< target name="Bobs" description="--> Tarefa de criação e customização do arquivo war do cliente Bob's ">
< !-- Antcall passando o Nome do cliente -->
< antcall target="generateFiles">
< param name="name.client" value="Bobs"/>
< /antcall>
< !-- Antcall passando o skin do cliente -->
< antcall target="changeSkin">
< param name="skin.type" value="BLU"/>
< /antcall>
< /target>
< target name="McDonaldsDeploy" description="--> Tarefas de deploy do McDonaldse ">
< antcall target="deployWar">
< param name="name.client" value="McDonalds"/>
< !-- URL definida no arquivo url.properties -->
< param name="deploy.path" value="${ McDonalds . deploy . path } "/>
< /antcall>
< /target>
< target name="GiraffasDeploy" description="--> Tarefas de deploy do Giraffa">
< antcall target="deployWar">
< param name="name.client" value="Giraffas"/>
< !-- URL definida no arquivo url.properties -->
< param name="deploy.path" value="${ Giraffas . deploy . path } "/>
< /antcall>
< /target>
< target name="BobsDeploy" description="--> Tarefas de deploy do Bob">
< antcall target="deployWar">
< param name="name.client" value="Bobs"/>
< !-- URL definida no arquivo url.properties -->
< param name="deploy.path" value="${ Bobs . deploy . path } "/>
< /antcall>
< /target>
< !-- Definições dos bancos para serem alterados pelo ANT -->
< target name="McDonalds.updt">
< antcall target="update.versao">
< param name="name.client" value="McDonalds"/>
< param name="pasta" value="${ McDonalds } "/>
< param name="version" value="McDonalds.version"/>
< param name="driver" value="${ McDonalds . driver } "/>
< param name="url" value="${ McDonalds . url } "/>
< param name="user" value="${ McDonalds . user } "/>
< param name="pwd" value="${ McDonalds . pwd } "/>
< /antcall>
< /target>
< target name="Giraffas.updt">
< antcall target="update.versao">
< param name="name.client" value="Giraffas"/>
< param name="pasta" value="${ Giraffas } "/>
< param name="version" value="Giraffas.version"/>
< param name="driver" value="${ Giraffas . driver } "/>
< param name="url" value="${ Giraffas . url } "/>
< param name="user" value="${ Giraffas . user } "/>
< param name="pwd" value="${ Giraffas . pwd } "/>
< /antcall>
< /target>
< target name="Bobs.updt">
< antcall target="update.versao">
< param name="name.client" value="Bobs"/>
< param name="pasta" value="${ Bobs } "/>
< param name="version" value="Bobs.version"/>
< param name="driver" value="${ Bobs . driver } "/>
< param name="url" value="${ Bobs . url } "/>
< param name="user" value="${ Bobs . user } "/>
< param name="pwd" value="${ Bobs . pwd } "/>
< /antcall>
< /target>
< /project>
mightyoluap 3 de nov. de 2009
ESTRUTURA DO url.properties:
# Definições de onde serão feitos os deploy's das aplicações
# SO: Linux
# Application Server: Apache Tomcat
McDonalds.deploy.path=/ServidorLinux1/opt/AS/tomcat1/webapps/mcdonalds/
Giraffas.deploy.path=/ServidorLinux2/opt/AS/tomcat2/webapps/giraffas/
Bobs.deploy.path=/ServidorLinux3/opt/AS/tomcat3/webapps/bobs/
mightyoluap 3 de nov. de 2009
ESTRUTURA DO client.properties:
# Configurações do bando e das pastas de scripts dos clientes
# Essas informações são atualizadas pelo ANT
# Driver que o ant utiliza para atualizar o banco
McDonalds . driver = oracle . jdbc . driver . OracleDriver
# Última pasta enviada para o cliente no empacotamento
McDonalds . fld = 200810101702
# URL do banco de test do cliente
McDonalds . url = jdbc \: oracle \: thin \: @ServidorBanco \: Porta \: mcdonalds
# Usuário do banco
McDonalds . pwd = McDonalds_test
# Senha do banco
McDonalds . user = McDonalds_test
# Última versão gerada da aplicação
McDonalds . version = 20091029
# Última pasta criada
McDonalds = 200907211116
Giraffas . driver = oracle . jdbc . driver . OracleDriver
Giraffas . fld = 200810101702
Giraffas . pwd = Giraffas_test
Giraffas . url = jdbc \: oracle \: thin \: @ServidorBanco \: Porta \: giraffas
Giraffas . user = Giraffas_test
Giraffas . version = 20091029
Giraffas = 200907211116
Bobs . driver = oracle . jdbc . driver . OracleDriver
Bobs . fld = 200810101702
Bobs . pwd = Bobs_test
Bobs . url = jdbc \: oracle \: thin \: @ServidorBanco \: Porta \: bobs
Bobs . user = Bobs_test
Bobs . version = 20091029
Bobs = 200907211116