Apache Ant

linguagem de programação

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

Apache Ant (Another Neat Tool)
Apache Ant Logo
Apache Ant Logo
Desenvolvedor Apache Software Foundation
Lançamento julho de 2000; há 24 anos
Versão estável 1.9.4 (5 de maio de 2014; há 10 anos)
Escrito em Java
Sistema operativo Multiplataforma
Gênero(s) Automação de compilação
Licença Apache License 2.0
Página oficial ant.apache.org

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.

Exemplo de arquivo build.xml

editar
<?xml version="1.0"?>
<project name="Hello" default="compile">
    <target name="clean" description="remove arquivos intermediarios">
        <delete dir="classes" />
    </target>
    <target name="compile"
     description="compila o código fonte Java do arquivo class">
        <mkdir dir="classes" />
        <javac srcdir="." destdir="classes" />
    </target>
    <target name="jar" depends="compile"
     description="cria o arquivo Jar para a aplicação">
        <jar destfile="hello.jar">
            <fileset dir="classes" includes="**/*.class" />
            <manifest>
                <attribute name="Main-Class" value="HelloProgram" />
            </manifest>
        </jar>
    </target>
</project>

Portabilidade

editar

Um dos principais objetivos do Ant é resolver os problemas de portabilidade do make. Em um arquivo Makefile (o arquivo lido pelo make), as ações para construir o projeto (por exemplo, gerar um arquivo executável) são disparadas por comandos do sistema operacional (ou mais especificamente, da sua shell), usualmente uma shell Unix. O Ant resolve este problema através do grande número de funcionalidades próprias; e que garante que se comportarão identicamente (em tese, pelo menos), em todas as plataformas.

Por exemplo, no arquivo build.xml mostrado acima, a diretiva clean apaga o diretório classes e todos arquivos abaixo dele. Em um arquivo Makefile típico, isto seria feito com o comando:

rm -rf classes/

Este comando, rm, é próprio do Unix; e muito provavelmente não estará disponível se o ambiente não for Unix, como o Microsoft Windows. Num arquivo de construção Ant, esta mesma operação seria realizada através do comando:

<delete dir="classes"/>

Uma discrepância comum entre sistemas operacionais está na forma em que os caminhos de diretórios são especificados. Os sistemas Unix utilizam uma barra (/), enquanto no Windows é utilizada uma barra invertida (\). O Ant deixa o autor escolher a sua forma preferida: barras ou barras invertidas para diretórios; e ponto e vírgula ou vírgula para separadores de caminhos. Ele converte tudo para a forma apropriada para a plataforma corrente.

História

editar

O Ant foi inventado por James Duncan Davidson, enquanto migrava um produto da Sun Microsystems para o modelo de software livre. O produto, que posteriormente foi chamado Apache Tomcat, era conhecido como a implementação de referência para o padrão JSP/Servlet. A ferramenta make pode ser utilizada na construção do Solaris, mas no mundo do software livre não há como controlar em qual plataforma o usuário construirá o Tomcat. O Ant foi criado como uma ferramenta simples, que utilizava um "arquivo de construção" em XML para construir o Tomcat, independentemente da plataforma alvo. A partir deste início humilde, a ferramenta tornou-se mais presente; e talvez teve maior êxito que o próprio Tomcat para o qual foi criada. A ferramenta Ant foi inicialmente liberada como um produto independente em 19 de julho de 2000, na sua versão 1.1. Ela passou a ser base dos projetos de software livre escritos em Java.

Devido à facilidade para integrar testes feitos em JUnit com o processo de construção, a ferramenta Ant permitiu que os desenvolvedores adotassem facilmente o modelo de "desenvolvimento orientado a testes" (test-driven development); e até mesmo a Extreme Programming.

Limitações

editar
  • Os arquivos de construção devem ser escritos no formato XML. Alguns consideram esta característica uma barreira para usuários novatos e para grandes projetos onde estes arquivos podem se tornar grandes e complexos. Este é um problema de todas as linguagens baseadas em XML, mas ocorre particularmente no caso do Ant, em grandes projetos com um grande número de tarefas. A ferramenta Apache Maven pode ser utilizada como alternativa para solucionar estes problemas, já que tem uma visão de mais alto nível na construção de sistemas;
  • Algumas "tarefas" Ant mais velhas, como <javac>, <exec> e <java>, têm opções que utilizam valores padrão que não são consistentes com as tarefas mais recentes. Ao mudar estes valores, o usuário corre o risco de provocar erros em versões mais novas;
  • No caso de substituição de strings existentes em arquivos de propriedades, se estas strings não forem definidas, o Ant não levanta uma exceção e mantém a referência no texto. Por exemplo, ${unassigned.property};
  • O tratamento de exceções e de persistência de estado é limitado. Por isso, a ferramenta não é considerada uma alternativa ao gerenciamento de múltiplas construções ao longo de um dia.

Ver também

editar

Bibliografia

editar

Ligações externas

editar