Nov 272015
 
Artículo Java

El comportamiento por defecto de la aplicación ant cuando se compila un proyecto Java, es compilar sólamente los ficheros “.java” que han sido modificados. Sin embargo, en ocasiones podemos observar que cada vez que se ejecuta, ant compila todos los ficheros “.java” del proyecto. En este artículo se explica una posible razón de este comportamiento y cómo evitarlo.

En el fichero de configuración “build.xml” existe normalmente una sección en la que se especifican el directorio de origen en el que se encuentran los ficheros java a compilar, y el directorio de destino en el que se guardan los ficheros “.class” resultantes:

Para determinar qué ficheros deben ser compilados, Ant compara la fecha de última modificación de cada uno de los ficheros “.java” existentes bajo el directorio de origen, con la fecha de última modificación del fichero “.class” correspondiente, y sólo lo compila si la fecha del fichero “.java” es posterior a la del fichero “.class”.

Pero para que esta comparación funcione, la estructura de directorios utilizada debe corresponder a la estructura de “packages” utilizada en el interior de los ficheros “.java”. Es decir, si un fichero fuente “fichero.java” contiene la directriz “package a.b;”, el fichero debe estar en la ruta “src/a/b/fichero.java”

En caso contrario, Ant no encontrará el fichero “.class”, y volverá a compilar el fichero “.java”.

Si el fichero “.java” no pertenece a ningún package, entonces deberá encontrarse directamente debajo del directorio “src”, y Ant buscará el fichero “.class” inmediatamente bajo el directorio “dest”, y sólo compilará el fichero “.java” si es más reciente que el fichero “.class”, o si el fichero “.class” no existe.

Referencias:

 Publicado por en 11:52 am

 Deja un comentario

(requerido)

(requerido)