No tópico
anterior escrevemos um arquivo de build que permitia compilar
arquivos .java e copiá-los para um determinado
diretório. Para demonstrar como é possível
até mesmo executar o arquivo resultante da compilação
(arquivos .class) vamos modificar o documento
XML usado no exemplo anterior para esta nova versão:
<project name="teste"
basedir="." default="compilar">
<property name="classes"
location="classes"/>
<property name="arquivo"
value="TesteAnt" />
<target name="dir">
<mkdir dir="classes"
/>
</target>
<target name="compilar"
depends="dir">
<javac srcdir="${basedir}"
destdir="${classes}"
/>
</target>
<target name="executar"
depends="dir, compilar">
<java classname="${arquivo}"
>
<classpath
path="${classes}" />
</java>
</target>
</project>
Este arquivo XML contém informações para
algumas tarefas um pouco mais complexas. Comece analisando a
segunda tarefa property: <property
name="arquivo" value="TesteAnt" />
Veja que está tarefa se chama arquivo e possui o valor
TesteAnt. Fique atento ao uso deste valor mais adiante. O diretório
classes é criado com o seguinte alvo: <target
name="dir">
<mkdir dir="classes" />
</target>
Para compilar o arquivo TesteAnt.java e copiá-lo
para a pasta classes usamos o alvo: <target
name="compilar" depends="dir">
<javac srcdir="${basedir}"
destdir="${classes}" />
</target>
Finalmente, executamos o arquivo resultante (TesteAnt.class)
usando o alvo: <target
name="executar" depends="dir, compilar">
<java classname="${arquivo}"
>
<classpath
path="${classes}" />
</java>
</target>
Veja que esta tarefa depende das duas tarefas anteriores. Desta
forma, você poderá executar o Ant fornecendo o
alvo executar como argumento: Ant
executar
Dentre os argumentos que podem ser fornecidos para a tarefa
java, os mais importantes são classname
(o nome da classe a ser executada) e classpath
(o caminho para o diretório que contem a(s) classe(s)).
Observe que temos que usar o atributo path
juntamente com o argumento classpath. Como
sugestão, recomendo que você investigue na documentação
do Ant outros argumentos possíveis. |