Formiga - Projetos de construção
Agora que aprendemos sobre os tipos de dados no Ant, é hora de colocar esse conhecimento em ação. Vamos construir um projeto neste capítulo. O objetivo deste capítulo é construir um arquivo Ant que compila as classes java e as coloca na pasta WEB-INF \ classes.
Considere a seguinte estrutura de projeto -
Os scripts do banco de dados são armazenados no db pasta.
O código-fonte java é armazenado no src pasta.
As imagens, js, META-INF, estilos (css) são armazenados no war pasta.
Os JSPs são armazenados no jsp pasta.
Os arquivos jar de terceiros são armazenados no lib pasta.
Os arquivos da classe java são armazenados no WEB-INF\classes pasta.
Este projeto forma o Hello World Aplicativo de fax para o restante deste tutorial.
C:\work\FaxWebApplication>tree
Folder PATH listing
Volume serial number is 00740061 EC1C:ADB1
C:.
+---db
+---src
. +---faxapp
. +---dao
. +---entity
. +---util
. +---web
+---war
+---images
+---js
+---META-INF
+---styles
+---WEB-INF
+---classes
+---jsp
+---lib
Aqui está o build.xml necessário para este projeto. Vamos considerá-lo peça por peça.
<?xml version = "1.0"?>
<project name = "fax" basedir = "." default = "build">
<property name = "src.dir" value = "src"/>
<property name = "web.dir" value = "war"/>
<property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>
<property name = "name" value = "fax"/>
<path id = "master-classpath">
<fileset dir = "${web.dir}/WEB-INF/lib">
<include name = "*.jar"/>
</fileset>
<pathelement path = "${build.dir}"/>
</path>
<target name = "build" description = "Compile source tree java files">
<mkdir dir = "${build.dir}"/>
<javac destdir = "${build.dir}" source = "1.5" target = "1.5">
<src path = "${src.dir}"/>
<classpath refid = "master-classpath"/>
</javac>
</target>
<target name = "clean" description = "Clean output directories">
<delete>
<fileset dir = "${build.dir}">
<include name = "**/*.class"/>
</fileset>
</delete>
</target>
</project>
Primeiro, vamos declarar algumas propriedades para as pastas source, web e build.
<property name = "src.dir" value = "src"/>
<property name = "web.dir" value = "war"/>
<property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/>
Neste exemplo -
src.dir refere-se à pasta de origem do projeto onde os arquivos de origem java podem ser encontrados.
web.dir refere-se à pasta de origem da web do projeto, onde você pode encontrar os JSPs, web.xml, css, javascript e outros arquivos relacionados à web
build.dir refere-se à pasta de saída da compilação do projeto.
Propriedades podem se referir a outras propriedades. Conforme mostrado no exemplo acima, obuild.dir propriedade faz uma referência ao web.dir propriedade.
Neste exemplo, o src.dir refere-se à pasta de origem do projeto.
O alvo padrão do nosso projeto é o compilealvo. Mas primeiro vamos olhar para oclean alvo.
O destino limpo, como o nome sugere, exclui os arquivos da pasta de construção.
<target name = "clean" description = "Clean output directories">
<delete>
<fileset dir = "${build.dir}">
<include name = "**/*.class"/>
</fileset>
</delete>
</target>
O master-classpath contém as informações do classpath. Nesse caso, inclui as classes na pasta build e os arquivos jar na pasta lib.
<path id = "master-classpath">
<fileset dir = "${web.dir}/WEB-INF/lib">
<include name = "*.jar"/>
</fileset>
<pathelement path = "${build.dir}"/>
</path>
Finalmente, o destino de construção para construir os arquivos. Em primeiro lugar, criamos o diretório de construção, se ele não existir. Em seguida, executamos o comando javac (especificando jdk1.5 como nossa compilação de destino). Fornecemos a pasta de origem e o caminho de classe para a tarefa javac e solicitamos que solte os arquivos de classe na pasta de construção.
<target name = "build" description = "Compile main source tree java files">
<mkdir dir = "${build.dir}"/>
<javac destdir = "${build.dir}" source = "1.5" target = "1.5" debug = "true"
deprecation = "false" optimize = "false" failonerror = "true">
<src path = "${src.dir}"/>
<classpath refid = "master-classpath"/>
</javac>
</target>
A execução de Ant neste arquivo compila os arquivos de origem java e coloca as classes na pasta de construção.
O seguinte resultado é o resultado da execução do arquivo Ant -
C:\>ant
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 6.3 seconds
Os arquivos são compilados e colocados no build.dir pasta.