Nosso próximo exemplo é
um pouco mais elaborado e coloca em prática alguns dos
conceitos explicados nos tópicos anteriores. Desta vez
você usará o Ant para compilar um arquivo .java,
criar um diretório e mover para este diretório
o resultado da compilação, ou seja, o arquivo
com a extensão .class. Para isso siga
os seguintes passos:
1) Crie um diretório no qual o projeto será desenvolvido,
pode ser algo como "c:\testes" (ou algo semelhante
se estiver usando Linux);
2) Abra seu editor favorito e escreva o seguinte programa Java
(para sua
comodidade este arquivo pode ser baixado clicando-se aqui):
public class TesteAnt{
public static void main(String args[]){
System.out.println("Compilando
com Ant");
}
}
Salve este arquivo com o nome de TesteAnt.java
no diretório que você criou no passo 1.
3) Crie um documento XML semelhante ao mostrado a seguir:
<project name="teste"
basedir="." default="compilar">
<property name="classes"
location="classes"/>
<target name="dir">
<mkdir dir="classes"
/>
</target>
<target name="compilar"
depends="dir">
<javac srcdir="${basedir}"
destdir="${classes}"
/>
</target>
</project>
Salve este arquivo com o nome build.xml no
diretório que você criou no passo 1.
4) Hora do teste. Abra uma seção do DOS, navegue
até o diretório que você criou e execute
o comando: C:\TESTES>ant
compilar
Se você seguiu os passos anteriores atentamente, você
verá o seguinte resultado: Buildfile:
build.xml
dir:
[mkdir] Created dir: C:\TESTES\classes
compilar:
[javac] Compiling 1 source file to C:\TESTES\classes
BUILD SUCCESSFUL
Total time: 2 seconds
Abra o diretório "c:\testes" e verá
a pasta classes. Dentro desta pasta você encontrará
o arquivo TesteAnt.class. Realmente uma ferramenta
muito útil, não? Vamos ver como isso aconteceu.
| Observação Importante: |
| Se houver mais de um arquivo .java neste diretório
todos eles serão compilados e os arquivos .class
correspondentes serão copiados para a pasta classes.
Existe, porém, uma ressalva nesta regra: somente
arquivos .java que não possuem seus arquivos .class
correspondentes ou arquivos .java mais recentes que seus
arquivos .class é que serão compilados.
Mais adiantes veremos o uso de filtros para compilar apenas
determinados arquivos. |
Este exemplo pode ser executado chamando o Ant sem argumentos.
Lembra-se de que, na falta de argumentos, a tarefa que será
executada é aquela definida no atributo default? Analise
a seguinte tarefa: <target
name="compilar" depends="dir">
Veja que ao usarmos o atributo depends, estamos
informando ao Ant que a tarefa compilar deverá ser executada
somente após a execução da tarefa dir.
E, nem precisamos chamar esta tarefa a partir da linha de comando.
O Ant se encarrega de tudo.
Após a criação do diretório classes
na tarefa dir: <target
name="dir">
<mkdir dir="classes" />
</target>
temos a tarefa que compila o arquivo .java e copia o resultado
(o arquivo .class) para o diretório classes:
<target name="compilar"
depends="dir">
<javac srcdir="${basedir}"
destdir="${classes}" />
</target>
Veja que para este exemplo fornecemos ao compilador Java apenas
o diretório de saída (srcdir) e o diretório
de destino (destdir). É possível fornecer mais
informações tais como classpath, target, etc.
Vamos ver agora como é possível
executar o arquivo .class usando Ant? |