lunes, 20 de octubre de 2008

Plantilla Ant

Bueno como todos ya conoceréis Ant es una herramienta desarrollada integramente en java y que sirve para automatizar el proceso de compilación, despliegue, generación de documentación etc ... Estas y otras muchas son tareas que debemos repetir multiples veces. Bueno pues esta herramienta ha sido pensada de forma que tu describes un fichero xml que por norma general suele llamarse build.xml, en el que describes los pasos que quieres realizar una vez hayas modificado el código. De esta forma podremos desplegar nuestra aplicación tantas veces como queramos en el servidor bajando el fuente desde un ftp o un subversion y todo ejecutando en el directorio el comando "ant" (seguido del nombre del fichero de descripción en el caso de que no sea build.xml).

Bueno pues voy a poneros una plantilla que va a recoger todas estas tareas:

-Limpiar: Se eliminan los directorios que contienen las clases compiladas y la documentación que pudo ser generrada anteriormente. Se eliminan ambos a la vez para que no exista una versión de documentación que no se corresponda con las clases compiladas y viceversa.

-Compilar: En la primera de sus tareas se crea, si no existe, el directorio donde se guardarán las clases compiladas. El directorio no existirá porque se ha eliminado con el objetivo limpiar, del cual depende compilar. La segunda tarea compila las clases, situadas en ${src} y almacena los resultados de la compilación en el directorio ${build}. Para ello utiliza el classpath definido en la propiedad ${classpath}.

-Jar: Se genera un archivo .jar con todas las clases presentes een el directorio ${destino} (build). Esta tarea depende del objetivo compilar para garantizar que existan clases compiladas en este directorio antes de intentar generar el archivo .jar.

-Documentar: En la primera tarea se crea, si no existe, el directorio donde se guardará la documentación generada. El directorio no existirá porque se ha eliminado con el objetivo limpiar, del cual depende compilar. La segunda tarea genera la documentación del proyecto.

-Main: Se ejecutan todos los objetivos para crear el programa y dejarlo listo para ser ejecutado.

<project name="Proyecto_basico" default="main" basedir=".">

   <!-- propiedades globales del proyecto -->
   <!-- definición de directorios que se van a usar-->
   <property name="src" value="."/>
   <property name="build" value="build"/>
   <property name="doc" value="doc"/>

  <!-- caracteristicas del proyecto-->
  <property name="classpath" value="./lib/misclases.jar"/>

  <target name="limpiar">
    <delete dir="$"/>
     <delete dir="${doc}"/>
  </target>

  <target name="compilar" depends="limpiar">
     <mkdir dir="${build}"/>
     <javac srcdir="${src}" destdir="${build}" classpath="${classpath}"/>
  </target>

  <target name="jar" depends="compilar">
     <jar jarfile="clases.jar" basedir="${build}" includes="**"/>
  </target>

  <target name="documentar" depends="limpiar">
     <mkdir dir="${doc}"/>
     <javadoc packagenames="proyectobasico" sourcepath="${src}" destdir="${doc}"/>
  </target>

  <target name="main" depends="compilar,documentar">
  </target>

</project>

Bueno espero que os sirva para describir vuestros proyectos si en algún momento no recordáis la sintaxis de Ant.

No hay comentarios: