Posts Tagged ‘ant’

  • SVNAnt Copy Task Patch

    0

    Días atrás me encontré con que quería utilizar SVNAnt para poder hacer branches desde ANT con Subversion. El task a utilizar en este caso es COPY y me di cuenta rápidamente que había algo que no cerraba.

    Cuando hacés svn copy en el command line este crea un archivo en otra locación y si pasás el parámetro –parents crea todos los directorios intermedios porque si no falla ya que no encuentra el directorio.

    Supuestamente SVNAnt es un fiel reflejo de los comandos svn. Pero ésto no es así. SVNAnt COPY no soporta un argument –parents, por ende no podía generar un brach desde ANT.

    Me dediqué a bajarme el código y pachearlo yo mismo.

    Copy.java

  • ANT: Como Generar Un Jar

    0

    Hoy vemos como se puede generar un Java de tu codigo ya compilado. Facilmente aplicando este task:

    <target name="jar">
      <jar destfile="my.jar" basedir="${bin}" />
    </target>
    

    Asi de sencillo decimos cual va a ser el destiny file y el basedir. El basedir es donde estan todos tus .class recien compilados.

  • ANT: Como Optimizar El Task javac

    0

    Hoy vemos cuales son las diferentes opciones que nos presenta el task javac para poder adecuarnos a situaciones especificas.

    Abajo vemos un task ANT de compilacion, vamos a explicar los diferentes parametros que estamos utilizando.

    <javac failonerror="true" destdir="${bin}" debug="on"
    	optimize="on" deprecation="off" memorymaximumsize="800m" target="1.6">
      <src path="${mysource}" />
    

    Aqui podemos ver la siguiente lista de parametros:

    • failonerror=true

    Este parametro dice que si algo llega a fallar en la compilacion todo el build se va a detener.

    • debug=on

    Dice que compila el codigo con la opcion debug encendida. Es sumamente util para ver en que linea esta la falla en el caso de que imprimamos un stacktrace.

    • optimize=on

    Esta opcion simplemente le indica al javac si queremos o no optimizar el codigo.

    • deprecation=off

    Dice al compilador si debemos compilar con informacion deprecada.

    • memorymaximumsize=800m

    Si tu proyecto contiene muchas cosas que compilar seria bueno que setees esta opcion. Mi proyecto contiene como 4000 clases y se hace necesario una amplitud en la memoria provista.

    • target=1.6

    Claramente compila el codigo para una jvm 1.6

    Espero les sirva

  • ANT: Como Referenciar Archivos JAR Para Compilar Codigo Java

    0

    En la entrega de hoy vemos como referenciar librerias jar para ser usadas al momento de compilacion.

    Dentro de nuestro task de compilacion agregamos un task 'classpath' como podemos apreciar debajo. Para ver como se diagrama basicamente un archivo ANT pueden ingresar aca.

    <javac destdir="${output}">
      <src path="${framework.src}" />
      <classpath>
       <fileset dir="c:/myproject/lib">
        <include name="**/*.jar" />
       </fileset>
      </classpath>
    </javac>
    

    De esa manera ya tenemos disponibles en el tiempo de compilacion las librerias que se encuentran en 'c:\myproject\lib'

    Ahora vamos a adornar nuestra compilacion con un par de mensajes a la cosola usando el task 'echo'.

    <echo message="compiling source code..."/>
    <javac destdir="${output}">
      <src path="${framework.src}" />
      <classpath>
       <fileset dir="c:/myproject/lib">
        <include name="**/*.jar" />
       </fileset>
      </classpath>
    </javac>
    <echo message="done!!"/>
    

    En la proxima entrega vamos a ver como optimizar el task de compilacion para adecuar a necesidades especificas.

  • ANT: Como Compilar Codigo Java

    0

    Vamos a empezar a escribir acerca de ANT ya que es super util para automatizar miles de tareas tediosas. Yo utilizo mucho ANT para compilar y hacer deploys de webapps asi como de desktop applications.

    Hoy vamos a ver la estructura basica de un ANT script y una tarea de compilacion.

    Primero hay que obtener una distribucion de ANT desde apache.
    Una vez que tenemos la distribucion unzipped en algun directorio podemos empezar a trabajar sobre el script. Yo utilizo Eclipse que ya trae todo lo relacionado a ANT integrado.

    Estructura basica de un script ANT

    <project name="some title" default="init" basedir=".">
      <target name="init">
      </target>
    </project>
    

    Aca vemos que es todo XML basico con tags predefinidos. El primer tag project define un atributo default el cual va a ser la primera tarea a ejecutar.

    Dentro de project vemos el tag target con su nombre correspondiente. Todo nuestro script de compilacion va a ir dentro de este target.

    Comenzemos declarando una variable para saber donde esta el source que queremos compilar y otra que marque el directorio de output.

    <project name="some title" default="init" basedir=".">
      <property name="src" value="c:\myproject\src" />
      <property name="output" value="c:\builds" />
      <target name="init">
      </target>
    </project>
    

    Ahora vamos a crear el directorio de output. Solo mostramos el codigo del target que es el que nos interesa de ahora en mas.

      <target name="init">
        <mkdir dir="${output}"/>
      </target>
    

    La proxima tarea es simplemente la compilacion.

      <target name="init">
        <mkdir dir="${output}"/>
        <javac destdir="${output}">
    	<src path="${src}" />
        </javac>
      </target>
    

    Esto es basicamente como se compila con ANT. Aca esta el manual completo de las tareas que podemos escribir . http://ant.apache.org/manual/index.html

    Ma