Apache Ant

Apache Ant
Apache ANT (Another Neat Tool)
logotipo de Apache Ant
Desarrollador
Apache Software Foundation
http://ant.apache.org
Información general
Última versión estable 1.8.2
27 de diciembre de 2010; hace 10 meses (2010-12-27)
Género Automatización de compilación
Programado en Java
Sistema operativo Multiplataforma
Plataforma Java
Licencia Apache License 2.0
Idiomas inglés
En español ?

Apache Ant es una herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build). Es, por tanto, un software para procesos de automatización de compilación, similar a Make pero desarrollado en lenguaje Java y requiere la plataforma Java, así que es más apropiado para la construcción de proyectos Java.

Esta herramienta, hecha en el lenguaje de programación Java, tiene la ventaja de no depender de las órdenes del shell de cada sistema operativo, sino que se basa en archivos de configuración XML y clases Java para la realización de las distintas tareas, siendo idónea como solución multi-plataforma.

La diferencia más notable entre Ant y Make es que Ant utiliza XML para describir el proceso de generación y sus dependencias, mientras que Make utiliza formato makefile. Por defecto, el archivo XML se denomina build.xml.

Ant es un proyecto de la Apache Software Foundation. Es software open source, y se lanza bajo la licencia Apache Software.

Contenido

ANT (siglas de "Another Neat Tool", en español "Otra Herramienta Pura", que en inglés significan "hormiga"[1] ) fue creado por James Duncan Davidson mientras realizaba la transformación del proyecto Solar de Sun Microsystems en código abierto (concretamente la implementación del motor JSP/Servlet de Sun, que luego se llamaría Jakarta Tomcat). Se usó una versión de código propietario de make para construirlo en entorno Solaris Operating Environment. En un entorno cerrado Make funcionaba correctamente bajo plataforma Solaris, pero para el entorno de código abierto, donde no era posible determinar la plataforma bajo la que se iba a compilar Tomcat, era necesaria otra forma de trabajar. Así nació Ant como un simple intérprete que cogía un archivo XML "build file" para compilar Tomcat independientemente de la plataforma sobre la que operaba. ANT (versión 1.1) fue lanzado oficialmente como un producto independiente el 19 de julio de 2000. A partir de este punto la herramienta fue adoptando nuevas funcionalidades y actualmente es un estándar en el mundo Java.

Se han hecho varias propuestas para una versión Ant 2, como AntEater (oso hormiguero) por James Duncan Davidson, Myrmidon por Peter Donald y Mutant (mutante) por Conor MacNeill, ninguno de los cuales fueron capaces de encontrar gran aceptación en la comunidad de desarrolladores.[2]

Para utilizar ANT basta con disponer de una distribución binaria de ANT y tener instalado la versión 1.4 o superior del JDK. La distribución binaria consiste en la siguiente estructura de directorios: La carpeta "ant" contiene las carpetas "bin" (que asímismo contiene scripts de lanzador), "lib" (que contiene las dependencias necesarias y los .JAR de Ant), "docs", (que contiene la documentación de Ant, incluyendo una descripción, imágenes y un manual), y "etc" (que contiene valiosos archivos .XSL para crear informe de mejora de la salida XML de varias tareas, migrar los archivos de creación y deshacerse de la "obsoleta" alerta, y más). Pero sólo se necesitan los directorios bin y lib para ejecutar ANT.

Ejecución de ANT

Para ejecutar ANT basta con escribir ant en la línea de comandos. Si se ha especificado la ejecución de un objetivo por defecto en la cabecera del proyecto del fichero build.xml no es necesario el uso de ningún parámetro ya que, como acabamos de ver en el ejemplo anterior, se ejecutara este por defecto. Para utilizar un buildfile diferente de build.xml hay que añadir el parámetro -buildfile nombre_fichero, donde nombre_fichero es el buildfile que se quiere utilizar:

ant -buildfile buildfile_alt.xml

Si se desea ejecutar uno o varios objetivos concretos, se debe añadir el nombre de este o estos objetivos en la línea de comandos vv:

ant clean

En este caso se ignorara el objetivo indicado en la cabecera del proyecto.

Hoy en día, ANT es la herramienta de construcción de software (compilación) utilizada por la mayoría de los proyectos de desarrollo de Java.[3] Por ejemplo, la mayoría de desarrolladores de código abierto incluye archivos build.xml en sus distribuciones [cita requerida]. Debido a que ANT ha hecho trivial [cita requerida] el integrar pruebas JUnit con el proceso de generación (compilación), ANT ha hecho fácil para los desarrolladores adoptar el desarrollo basado en pruebas, e incluso extreme programming.

Limitaciones

  • Al ser una herramienta basada en XML, los archivos Ant deben ser escritos en XML. Esto es no sólo una barrera para los nuevos usuarios, sino también un problema en los proyectos muy grandes, cuando se construyen archivos muy grandes y complejos. Esto quizá sea un problema común a todos los lenguajes XML, pero la granularidad de las tareas de Ant (comparado con Maven, por decir alguno), significa que los problemas de escalabilidad llegan pronto.
  • La mayoría de las antiguas herramientas — las que se usan todos los días, como <javac>, <exec> y <java> — tienen malas configuraciones por defecto, valores para opciones que no son coherentes con las tareas más recientes. Ésta es la maldición de la compatibilidad hacia atrás: cambiar estos valores supone estropear las herramientas existentes.
  • Cuando se expanden las propiedades en una cadena o un elemento de texto, las propiedades no definidas no son planteadas como error, sino que se dejan como una referencia sin expandir (ej.: ${unassigned.property}). De nuevo, ésta es una cuestión de la compatibilidad hacia atrás, incluso se reconoce que tener la herramienta desactivada es normalmente la mejor opción, al menos hasta el punto que el mítico producto "Ant2.0" falle en propiedades no asignadas.
  • No es un lenguaje para un flujo de trabajo general, y no debería ser usado como tal. En particular, tiene reglas de manejo de errores limitadas, y no tiene persistencia de estado, así que no puede ser usado con confianza para manejar una construcción de varios días.

Estructura de un fichero build.xml

Los ficheros buildfiles de ANT están escritos en XML. Cada buildfile contiene un proyecto (project) y al menos un objetivo (target). Cada objetivo puede contener varias tareas (task) que son fragmentos de código a ejecutar. Un proyecto, además, puede constar de diversas propiedades. Cada propiedad consta de nombre y valor y son usadas para asignar valores a los atributos de los task.

Extensiones

WOProject-Ant[4] es uno de los muchos ejemplos de una tarea de extensión escrita para ANT. Estas extensiones son puestas en uso copiando los archivos jar en el directorio lib. Una vez hecho esto, estas tareas de extensión pueden ser invocadas directamente en el típico archivo build.xml. Las extensiones de WOProject WebObjects permiten a los desarrolladores el uso de ANT en la construcción de sus marcos y aplicaciones, en lugar de la suite Apple Xcode.

Antcontrib[5] proporciona un conjunto de tareas tales como sentencias condicionales y operaciones sobre las propiedades, así como otras tareas útiles.[6]

Existen otras extensiones de tareas para Perforce, .NET, EJB, y manipulaciones del sistema de archivos, por nombrar algunos.[7]

Portabilidad

Una de las primeras ayudas de Ant fue solucionar los problemas de portabilidad de Make. En un Makefile las acciones necesarias para crear un objetivo se especifican como órdenes de Intérprete de comandos que son específicos de la plataforma, normalmente un shell de Unix. Ant resuelve este problema proveyendo una gran cantidad de funcionalidades por él mismo, que pueden garantizar que permanecerán (casi) idénticas en todas las plataformas.

Notas

Bibliografía


Enlaces internos

  • Wikibooks-logo.svg WikilibrosLibros de texto en Wikilibros.
  • Ver el portal sobre Software libre Portal:Software libre. Contenido relacionado con Software libre.
  • Automatización de compilación
  • Maven, una herramienta de automatización de compilaciones y gestión de proyectos principalmente enfocada a Java
  • Apache Jelly, herramienta para convertir XML en código ejecutable
  • Nant, Ant-like herramienta enfocada al entorno .NET más que a Java
  • Ivy, un gestor de dependencias que se integra estrechamente con Ant, un subproyecto de Ant
  • Lista de software de automatización de compilaciones

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Apache Ant — (Another Neat Tool) Тип Билд утилиты Разработчик …   Википедия

  • Apache Ant — Entwickler Apache Software Foundation Aktuelle Version 1.8.2 (27. Dezember 2010) …   Deutsch Wikipedia

  • Apache Ant — es una herramienta usada en programación para la realización de tareas mecánicas y repetitivas, normalmente durante la fase de compilación y construcción (build). Es similar a Make pero sin las engorrosas dependencias del sistema operativo. Esta… …   Enciclopedia Universal

  • Apache Ant — Infobox Software name = Apache Ant (Another Neat Tool) caption = developer = Apache Software Foundation latest release version = 1.7.1 latest release date = June 27, 2008 latest preview version = latest preview date = operating system = Cross… …   Wikipedia

  • Apache Ant — Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • Apache Maven — Developer(s) Apache Software Foundation Stable release 3.0.3[1] / March 3, 2011 …   Wikipedia

  • Apache Maven — Тип Автоматизация сборки Разработчик …   Википедия

  • Ant (Apache) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • ANT (Apache) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

  • Ant (logiciel) — Apache Ant Pour les articles homonymes, voir ant. Ant …   Wikipédia en Français

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”