22
Introducción a Apache Ant Juan V. Carrillo Simón CFGS DAM. Entornos de Desarrollo

Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Embed Size (px)

Citation preview

Page 1: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Introducción a Apache Ant

Juan V. Carrillo SimónCFGS DAM. Entornos de Desarrollo

Page 2: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Apache Ant

● "Another Neat Tool" en español "Otra Ingeniosa Herramienta"

● Herramienta para realización de tareas de compilación y construcción (build)

● Fichero de configuración en xml○ Por defecto build.xml

● Proyectos similares: Maven

http://ant.apache.org/

Page 3: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Estructura de directorios

Page 4: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Estructura de directorios

● src: Código fuente● dist: Paquetes de distribución● build: Código compilado● docs: Documentación● build.xml: configuración de ant

Page 5: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

XML: eXtensible Markup Language

● Lenguaje de marcas extensible● Define una serie de etiquetas● Toda etiqueta de apertura debe tener su

etiqueta de cierre

<etiquetauno></etiquetauno>ó

<etiquetauno />

● Las etiquetas pueden tener contenido

<etiquetados>Contenido</etiquetados>

Page 6: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

XML: etiquetas y atributos

● Las etiquetas pueden anidarse <etiquetauno>

<etiquetados>Algo</etiquetados><etiquetados>Algo más</etiquetados>

</etiquetauno>

● Las etiquetas pueden tener atributos<etiquetauno atributo=”valor”>

Page 7: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

XML: Comentarios

● Comentarios en XML

<!-- Setting properties -->

● Cabecera de un documento

<?xml version="1.0"?>

Page 8: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Ejemplo completo de XML<?xml version="1.0"?><project name="test" default="all" basedir="."> <!-- Setting properties --> <property name="build.dir" location="build/classes" /> <property name="dist.dir" location="dist" /> <property name="docs.dir" location="docs" /> <!-- Deletes the existing build, docs and dist --> <target name="clean"> <delete dir="${build.dir}" ></delete> <delete dir="${docs.dir}" ></delete> <delete dir="${dist.dir}" ></delete> </target></project>

Page 9: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

ANT: 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.

Page 10: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Project y Target

● El proyecto es la raíz, target los objetivos● Definiremos un target para cada tarea. ● No hay un nombre estándar, pero se suelen

usar los siguientes:○ build: compilar○ clean: eliminar compilados○ init: crear los directorios necesarios○ run: ejecutar○ doc: generar documentación○ all: limpiar y compilar○ dist / jar: ficheros de distribución

Page 11: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Propiedades

● Cada propiedad consta de nombre y valor y son usadas para asignar valores a los atributos de los task.

○ Definición

<property name="build.dir" location="build/classes" />

○ Uso:

<delete dir="${build.dir}" ></delete>

Page 12: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Empezando con ANT: build.xml

● Creamos el fichero build.xml añadiendo la cabecera. ● Es conveniente escribir ya la etiqueta de cierre del

proyecto, para no olvidarla● Etiqueta “default” define el target que se ejecuta por

defecto

<?xml version="1.0"?><project name="miproyecto" default="all" basedir="."> <!-- Setting properties --> <property name="build.dir" location="build/classes" /> <property name="dist.dir" location="dist" /> <property name="src.dir" location="src" />

</project>

Page 13: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: init target

● Añadimos la tarea inicial○ Utiliza el comando mkdir (crea directorio)

...<target name="init">

<mkdir dir="${dist.dir}" ></mkdir> <mkdir dir="${build.dir}" ></mkdir> <!-- src ya está creado -->

</target>

...

Page 14: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: build target

● Añadimos la tarea de compilación○ Primero se ejecuta “init”: atributo depends

<target name="build" depends="init"> <javac srcdir="${src.dir}"

destdir="${build.dir}"/>

</target>

Page 15: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: dist target

● Definimos la tarea para crear el jar● Hay que definir la clase principal (punto de entrada) en

el fichero manifest

<target name="dist" depends="init, build"> <jar destfile="${dist.dir}/HelloWorld.jar"

basedir="${build.dir}"

<manifest> <attribute name="Main-Class"

value="dam.HelloWorld" />

</manifest> </jar>

</target>

Page 16: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: clean target

● Tarea para eliminar compilado○ Utiliza el comando delete

<target name="clean"> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/></target>

Page 17: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: run target

● Tarea para ejecutar: utiliza el comando java

<property name="main-class" value="dam.HelloWorld"/>

...<target name="run"> <java jar="${build.dir}/${ant.project.name}.jar"

fork="true"/>

</target>

Page 18: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: all target

● Tarea principal (definida para ser la tarea por defecto)● Realiza la compilación y el jar● No necesariamente tiene que ser la tarea por defecto

<target name="all" depends="build, dist"> <description>Main target</description></target>

Page 19: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: librerías

● Es necesario añadir las librerías para compilar

<!-- Create classpath container which can be later used --

>

<path id="build.classpath">

<fileset dir="${lib.dir}">

<include name="**/*.jar" />

</fileset>

</path>

<!-- Compiles the java code -->

<target name="build" depends="clean, init">

<javac srcdir="${src.dir}" destdir="${build.dir}"

classpathref="build.classpath" />

</target>

Page 20: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

build.xml: librerías

● También hay que añadirlas al ejecutar

<target name="run" depends="dist"> <java fork="true" classname="${main-class}"> <classpath> <path refid="classpath"/> <path location="${dist.dir}/${ant.project.name}.jar"/> </classpath> </java></target>

Page 21: Apache Ant Introducción a · Empezando con ANT: build.xml Creamos el fichero build.xml añadiendo la cabecera. Es conveniente escribir ya la etiqueta de cierre del proyecto, para

Ejecutar Ant