2009-03-29 11 views
5

He estado tratando de entender para qué se usa Ant pero aún no lo entiendo.Cómo usar Ant?

¿Alguien puede darme un caso de uso para el que se usa Ant, algo que puedo intentar ver por qué Ant es útil y para qué puedo usarlo?

Desarrollo de Java en Eclipse y recién estoy comenzando con servlets y Google Web Toolkit.

+1

eficazmente un duplicado de http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

(en que las respuestas a esta pregunta responden a esta pregunta directamente.) –

Respuesta

17

Ant es una herramienta de compilación. Digamos, por ejemplo, que tiene varios proyectos en su área de trabajo de Eclipse, todos los cuales son piezas de una aplicación más grande. Para compilarlo todo en un archivo jar con las dependencias incluidas, puede seleccionar todos los proyectos y exportarlos como un archivo jar, pero eso es algo engorroso.

Ant es una solución extensible. Usted define el proceso de compilación en XML, y ant compila sus archivos java de acuerdo con esta receta.

Ant puede hacer más que construir, también. Trabajé en una compañía donde el mecanismo de implementación era paquetes Debian en nuestro propio repositorio. Teníamos scripts Ant que compilaban los archivos jar, los organizaban y algunos archivos de metadatos en un paquete Debian, los colocaban en el repositorio y volvían a generar el manifiesto del repositorio.

Como con cualquier cosa de Java, hay una gran cantidad de configuración que necesita para entender antes de dominar Ant, pero algunos de los tutoriales básicos le darán una idea de en qué se está metiendo.

4

Ant se utiliza, como cualquier herramienta de compilación, para automatizar las tareas repetitivas de construir su código.

En lugar de ejecutar javac cada vez a mano, pones un comando en un script Ant y luego, cuando ejecutas el comando, ejecuta javac por ti.

Mi proceso de construcción típica con la hormiga es algo como esto:

  • plazo javac en la fuente
  • javac corrida en los tets
  • ejecutar el instrumental Cobertura de la fuente (esto es para la cobertura de código
  • )
  • jar las clases de la fuente
  • jar las clases Cobertura instrumentado
  • jar la U clases de prueba nit
  • plazo Checkstyle, PMD, findbugs en la fuente para encontrar advertencias
  • ejecutar las pruebas de unidad a través de Cobertura para obtener la cobertura de código de ellas

Así que es 8 pasos que he hecho en cada construir lo que puedo hacer simplemente ejecutando "hormiga".

2

Ant es un archivo make basado en XML.

No verá mucho beneficio usar Ant si es un desarrollador único que ya crea y empaqueta código exitosamente usando un IDE como Eclipse.

El mayor beneficio se obtiene cuando tienes un equipo que colabora en el código. Entonces obtendrá un gran impulso si usa Cruise Control o alguna otra instalación de integración continua. CC requiere un Ant build.xml.

0

Esto es de la documentación ANT y lo explica muy bien.

Por otra herramienta de construcción cuando hay ya hacen, gnumake, nmake, mermelada, y otros ? Debido a que todas esas herramientas tienen limitaciones que el autor original de Ant no pudo vivir al desarrollar el software en múltiples plataformas. Las herramientas similares son intrínsecamente basadas en shell: evalúan un conjunto de dependencias , luego ejecutan los comandos similar a lo que se emitiría en un shell . Esto significa que puede ampliar fácilmente estas herramientas usando o escribiendo cualquier programa para el SO en el que está trabajando ; sin embargo, esto también significa que se limita al sistema operativo o al menos el tipo de sistema operativo, como Unix, en el que está trabajando.

Los archivos Makefiles son intrínsecamente malvados también. Cualquiera que haya trabajado en ellos durante cualquier tiempo se ha encontrado con la temida pestaña problema. "¿Mi comando no se está ejecutando porque tengo un espacio delante de mi pestaña ? !!" dijo el autor original de Ant demasiadas veces. Herramientas como Jam se ocuparon de esto en gran medida, pero todavía tienen otro formato para usar y recordar.

Ant es diferente. En lugar de un modelo donde se amplía con comandos basados ​​en shell , Ant se amplía utilizando las clases Java . En lugar de escribir comandos de shell , los archivos de configuración son basados ​​en XML, llamando a un árbol de destino donde se ejecutan varias tareas. Cada tarea es ejecutada por un objeto que implementa una interfaz particular Tarea .

Por supuesto, esto elimina parte de la fuerza expresiva que es inherente a poder construir un comando shell como find . -name foo -exec rm {}, sino que le da la capacidad de ser multiplataforma - a trabajar en cualquier lugar y en todas partes . Y oye, si realmente necesita ejecutar un comando de shell , Ant tiene una tarea que permite ejecutar diferentes comandos en base al sistema operativo en el que se está ejecutando .

Cuestiones relacionadas