Ant4Eclipse: Um overview sobre o Projeto

Veja neste artigo uma visão geral de um excelente plugin (do Eclipse) de build baseado no Ant, o Ant4Eclipse.

"Apache Ant é uma ferramenta utilizada para automatizar a construção de software. Ela é similar ao make mas é escrita na linguagem Java e foi desenvolvida inicialmente para ser utilizada em projetos desta linguagem.

A mais aparente diferença entre as ferramentas Ant e make, é que a primeira utiliza um arquivo no formato XML para descrever o processo de construção (build) e suas dependências, enquanto o make possui o seu próprio formato de arquivo, o Makefile. Por padrão este arquivo XML tem o nome build.xml.

A ferramenta Ant é um projeto da Apache Software Foundation. É um software livre, licenciado sob a licença Apache."

Com estas palavras a ferramenta é descrita pela Wikipédia, onde é possível encontrar algumas referências externas para o projeto, assim como inúmeros artigos e tutoriais falando sobre o assunto.

Muitos desenvolvedores lidam com a necessidade de automatizar seus softwares. Com o advento da programação ágil essa necessidade se fez e faz cada vez maior. O Ant, como pode ser visto na descrição da Wikipédia, está fortemente ligado ao Java. Portanto, a grande maioria dos projetos e profissionais de Software o usam junto à linguagem.

Apache Ant

Figura 1: Apache Ant

Mas antes que o post se estenda muito à ferramenta Ant em si, é importante ressaltar o foco do mesmo: o Ant4Eclipse.

Objetivos do Projeto

O objetivo do projeto Ant4Eclipse é evitar (ou pelo menos: reduzir) a redundância de configurações do Eclipse e Ant. Mais precisamente: consiste em tarefas Ant que são capazes de ler e trabalhar com alguns dos arquivos de configuração do Eclipse. Com essas tarefas, você será capaz de:

  • Configurar "classpathes" conforme definido no .classpath-file do Eclipse;
  • Fazer check-out's de workspaces completos como é possível com o recurso "Team Project Set feature" do Eclipse;
  • Executar seus aplicativos Java, como você os definiu no Eclipse LaunchConfiguration.

Com todas essas tarefas você será capaz de criar um sistema de construção automático completo que começa com o check-out de todos os projetos necessários a partir de algum repositório de versionamento, constrói todos os projetos na ordem correta com as configurações de classpath, conforme especificado no Eclipse, e lançar suas aplicações tal como estão especificadas no Eclipse. E o melhor de tudo: se você ou alguém muda uma configuração no Eclipse, essas mudanças são imediatamente visíveis para os buildfiles - sem mudar uma linha de código!

Por que Ant4Eclipse?

É bem sabida a seguinte situação: os desenvolvedores de uma equipe estão usando o Eclipse IDE para codificar e compilar seus aplicativos, além de implantar e executar os mesmos. Sem problemas até agora. Mas assim que você quiser criar algo como um sistema de construção contínua que corre fora do Eclipse, você também precisará de um processo de construção que seja independente do Eclipse. Normalmente você irá usar o Ant e algumas outras ferramentas para definir seu processo de construção automática.

Mas, infelizmente, o Ant não pode usar qualquer uma das configurações do Eclipse, como classpathes, launcher ou os "teamproject sets". Mesmo que tudo seja bem configurado já dentro do IDE, tem que ser refeito naqueles arquivos de build Ant externos. E pior ainda: tem de ser reconfigurado a cada vez que um desenvolvedor fizer alterações no Eclipse. Como sempre acontece com os dados redundantes, o desafio é manter as configurações do Eclipse e o Ant em sincronia. Mas, e sobre como evitar a redundância em primeiro lugar? Este é o lugar onde Ant4Eclipse entra em jogo.

Instalação

Primeiramente, adicione todos os jars ao classpath do Ant.

Antes que você possa usar Ant4Eclipse dentro de seus arquivos ANT, você tem que adicionar o JAR org.ant4eclipse_<versão>.jar e todos os JARs contidos no diretório libs da distribuição Ant4Eclipse ao classpath do Ant4Eclipse. Isso pode ser feito com qualquer uma das seguintes formas:

Instalando Ant4Eclipse no diretório lib do Ant:

  • Esta é a maneira mais fácil de instalar o Ant4Eclipse. Basta copiar o jar org.ant4eclipse_.<versão> e os JARs do diretório libs da distribuição Ant4Eclipse para o diretório lib da sua instalação Ant. Uma abordagem alternativa é copiar os arquivos JARs para um diretório chamado ".ant/lib" em seu diretório home. Ambos os diretórios serão pesquisados pelo Antfor libraries.

Usando Ant4Eclipse pela linha de comando:

  • Adicione o JAR org.ant4eclipse_.<versão> e os JARs do diretório libs da distribuição Ant4Eclipse ao classpath usando o argumento de linha de comando do Ant"lib-": ant -lib /path/to/ant4eclipse/ant4eclipse.jar -lib /path/to/ant4eclipse/libs<otherantargs>;

Adicione as tasks do Ant4Eclipse no seu build file.

Depois de ter instalado o Ant4Eclipse, você pode criar um novo arquivo build.xml e adicionar as tarefas que vêm com o Ant4Eclipse usando a tarefa "taskdef" do Ant, tal com na Listagem 1.

Listagem 1: Tarefa taskdef do Ant4Eclipse

<project ...
xmlns:ant4eclipse="antlib:org.ant4eclipse"
xmlns:antcontrib="antlib:net.sf.antcontrib">
	<taskdef uri="antlib:net.sf.antcontrib"
	resource="net/sf/antcontrib/antlib.xml" />
	<taskdef uri="antlib:org.ant4eclipse"
	resource="org/ant4eclipse/antlib.xml" />
  ...
</project>

Note que você não pode usar o argumento classpath da tarefa taskdef (caso contrário, o adaptador compilador EJC não vai funcionar). Você deve se certificar de que o Ant4Eclipse está incluído no classpath do Ant como descrito acima. Se você quiser editar seus arquivos de build a partir de Eclipse inclua os JARs que vem com Ant4Eclipse no ambiente Eclipse Antruntime na "Window ->Preferences ->Ant ->Runtime -> Global Entries". Veja na Figura 1 um exemplo (É claro que você tem que ajustar as configurações de caminho para o seu ambiente):

JARs adicionados ao classpath

Figura 2: JARs adicionados ao classpath

Concluindo

Esse definitivamente não é um projeto muito expandido, por assim dizer. Faltam referências, tutoriais, blogs falando a respeito. Mas ao menos o material é limpo e de boa qualidade. Confira na seção de Links alguns links do projeto oficial, o github, assim como a opção no marketplace. No mais, o projeto tem muito a oferecer e a crescer também.

Links