Diferencia entre revisiones de «Ant»
Línea 1: | Línea 1: | ||
− | + | [[Ant]] es una herramienta de build de [[Software Libre]] especializada en construir proyectos Java. [[Ant]] utiliza archivos XML para expresar las instrucciones de ejecución de build. Ella posee una gran variedad de tareas que permiten la realización de actividades como generación de pruebas unitarias, publicación de información, entre otras. | |
− | [[Ant]] es una herramienta de build de [[Software Libre]] especializada en construir proyectos Java. [[Ant]] utiliza archivos XML para expresar las instrucciones de ejecución de build. | ||
− | Ella posee una gran variedad de tareas que permiten la realización de actividades como generación de pruebas unitarias, publicación de información, entre otras. | ||
− | Algunos ejemplos de tareas pueden ser: | + | Algunos ejemplos de tareas pueden ser: |
− | * Prepare - | + | *Prepare -> Realiza la creación de directorios que contendrán los ejecutables. |
− | * Compile - | + | *Compile -> Compila el código fuente del producto. |
− | * Instrument - | + | *Instrument -> Instrumenta el código para permitir la generación de información de cobertura de código. |
− | * Compile-test - | + | *Compile-test -> Compila el código de pruebas unitarias automatizadas. |
− | * Test - | + | *Test -> Ejecuta la batería de pruebas unitarias automatizadas, genera la información en HTML de las pruebas ejecutadas con éxito y con falla y genera la información en HTMl de la cobertura de código. |
− | * [[PMD]] - | + | *[[PMD]] -> Ejecuta la generación de información de análisis estática de código. |
− | * Javadoc - | + | *Javadoc -> Ejecuta la generación de documentación de las clases en base a los comentarios en el código fuente. |
− | * Run - | + | *Run -> Ejecuta el software. |
− | * Clean - | + | *Clean -> Realiza la limpieza de los directorios que contienen los ejecutables. |
− | * Jar - | + | *Jar -> Realiza el empaquetado del software para que pueda se utilizado en producción. |
− | El script de build puede ser ejecutado de diversas maneras y con múltiples opciones. | + | El script de build puede ser ejecutado de diversas maneras y con múltiples opciones. En el caso de línea de comando, por ejemplo "ant test pmd javadoc jar", todas las secciones del archivo XML serán ejecutadas. |
− | En el caso de línea de comando, por ejemplo "ant test pmd javadoc jar", todas las secciones del archivo XML serán ejecutadas. | ||
− | Ant puede ser utilizado para realizar la implantación de una aplicación JEE Web en producción. | + | Ant puede ser utilizado para realizar la implantación de una aplicación JEE Web en producción. Un ejemplo de una sección que haría eso sería el siguiente: <code xml="xml"> |
− | Un ejemplo de una sección que haría eso sería el siguiente: | ||
− | <code xml> | ||
<target name="deploy"> | <target name="deploy"> | ||
<deploy url="${tomcat.manager.url}" | <deploy url="${tomcat.manager.url}" | ||
Línea 29: | Línea 24: | ||
war="file:${warfile.path}" /> | war="file:${warfile.path}" /> | ||
</target> | </target> | ||
− | </code> | + | </code> |
− | ==Ver también== | + | <br> |
− | * [[Automatizacion De Build]] | + | |
− | * [[Maven]] | + | == Condicionales con ant == |
− | * [http://ant.apache.org/ Web oficial de Ant] | + | |
− | * [http://www.dosideas.com/java/391-automatizacion-de-despliegues-ino-mas-dolores-de-cabeza.html Patrones para la automatización de despliegues] | + | A continuación se muestra una forma de simular los típicos condicionales "if - then - else" con tags de Ant. El ejemplo muestra como realizar diferentes acciones según el contenido de un parámetro. |
+ | |||
+ | <code xml="xml"> | ||
+ | <?xml version="1.0"?> | ||
+ | <project name="Condicional" default="if" basedir="."> | ||
+ | |||
+ | <target name="if"> | ||
+ | <condition property="condition"> | ||
+ | <equals arg1="${param}" arg2="VALOR1" /> | ||
+ | </condition> | ||
+ | <antcall target="then"/> | ||
+ | <antcall target="else"/> | ||
+ | </target> | ||
+ | |||
+ | <target name="then" if="condition"> | ||
+ | <echo>El parámetro fue VALOR1</echo> | ||
+ | </target> | ||
+ | |||
+ | <target name="else" unless="condition"> | ||
+ | <condition property="conditionElse"> | ||
+ | <equals arg1="${param}" arg2="VALOR2" /> | ||
+ | </condition> | ||
+ | <antcall target="thenElse"/> | ||
+ | <antcall target="elseElse"/> | ||
+ | </target> | ||
+ | |||
+ | <target name="thenElse" if="conditionElse"> | ||
+ | <echo>El parámetro fue VALOR2</echo> | ||
+ | </target> | ||
+ | |||
+ | <target name="elseElse" unless="conditionElse"> | ||
+ | <fail message="Parametro desconocido"></fail> | ||
+ | </target> | ||
+ | |||
+ | </project> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | El tag "condition" setea una properties de acuerdo a la condición que contiene. Si la condición tiene valor true, el valor de la propertie es seteado en true por default (tambien se puede especificar que valor asignarle a la propertie con el atributo "value"). De otra manera la propertie no es seteada. Existe un [http://ant.apache.org/manual/Tasks/conditions.html listado de condiciones] permitidas para el tag. Luego utilizando los atributos del tag target : "if" y "unless" podemos simular un flujo de condicionales. El atributo "if" permite que se ejecute el target solo si el valor de la variable que se le pasa es true. El atributo "unless" se comporta de la manera contraria: solo permite la ejecución del target si el valor de la variable no es true. | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Ver también == | ||
+ | |||
+ | *[[Automatizacion De Build]] | ||
+ | *[[Maven]] | ||
+ | *[http://ant.apache.org/ Web oficial de Ant] | ||
+ | *[http://www.dosideas.com/java/391-automatizacion-de-despliegues-ino-mas-dolores-de-cabeza.html Patrones para la automatización de despliegues] | ||
+ | |||
+ | [[Category:Java]] |
Revisión del 15:14 11 ago 2010
Ant es una herramienta de build de Software Libre especializada en construir proyectos Java. Ant utiliza archivos XML para expresar las instrucciones de ejecución de build. Ella posee una gran variedad de tareas que permiten la realización de actividades como generación de pruebas unitarias, publicación de información, entre otras.
Algunos ejemplos de tareas pueden ser:
- Prepare -> Realiza la creación de directorios que contendrán los ejecutables.
- Compile -> Compila el código fuente del producto.
- Instrument -> Instrumenta el código para permitir la generación de información de cobertura de código.
- Compile-test -> Compila el código de pruebas unitarias automatizadas.
- Test -> Ejecuta la batería de pruebas unitarias automatizadas, genera la información en HTML de las pruebas ejecutadas con éxito y con falla y genera la información en HTMl de la cobertura de código.
- PMD -> Ejecuta la generación de información de análisis estática de código.
- Javadoc -> Ejecuta la generación de documentación de las clases en base a los comentarios en el código fuente.
- Run -> Ejecuta el software.
- Clean -> Realiza la limpieza de los directorios que contienen los ejecutables.
- Jar -> Realiza el empaquetado del software para que pueda se utilizado en producción.
El script de build puede ser ejecutado de diversas maneras y con múltiples opciones. En el caso de línea de comando, por ejemplo "ant test pmd javadoc jar", todas las secciones del archivo XML serán ejecutadas.
Ant puede ser utilizado para realizar la implantación de una aplicación JEE Web en producción. Un ejemplo de una sección que haría eso sería el siguiente:
<target name="deploy"> <deploy url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webap.name}" war="file:${warfile.path}" /> </target>
Condicionales con ant
A continuación se muestra una forma de simular los típicos condicionales "if - then - else" con tags de Ant. El ejemplo muestra como realizar diferentes acciones según el contenido de un parámetro.
<?xml version="1.0"?>
<project name="Condicional" default="if" basedir=".">
<target name="if"> <condition property="condition"> <equals arg1="${param}" arg2="VALOR1" /> </condition> <antcall target="then"/> <antcall target="else"/> </target>
<target name="then" if="condition"> <echo>El parámetro fue VALOR1</echo> </target>
<target name="else" unless="condition"> <condition property="conditionElse"> <equals arg1="${param}" arg2="VALOR2" /> </condition> <antcall target="thenElse"/> <antcall target="elseElse"/> </target>
<target name="thenElse" if="conditionElse"> <echo>El parámetro fue VALOR2</echo> </target>
<target name="elseElse" unless="conditionElse"> <fail message="Parametro desconocido"></fail> </target>
</project>
El tag "condition" setea una properties de acuerdo a la condición que contiene. Si la condición tiene valor true, el valor de la propertie es seteado en true por default (tambien se puede especificar que valor asignarle a la propertie con el atributo "value"). De otra manera la propertie no es seteada. Existe un listado de condiciones permitidas para el tag. Luego utilizando los atributos del tag target : "if" y "unless" podemos simular un flujo de condicionales. El atributo "if" permite que se ejecute el target solo si el valor de la variable que se le pasa es true. El atributo "unless" se comporta de la manera contraria: solo permite la ejecución del target si el valor de la variable no es true.