Estoy más acostumbrado a hacer, así que estoy confundido por qué la hormiga recompila clases cuando la fuente no ha sido cambiada. He leído que hay un requisito para recompilar en algunos casos donde se usan genéricos, pero no estoy seguro de que esto sea necesario para mi proyecto.¿Por qué la hormiga compila todas las clases en cada ejecución?
Además, en la tarea javac, me he fijado includeDestClasses = "true"
He aquí algunos de los objetivos que estoy usando
<target name="init">
<mkdir dir="${build}"/>
<mkdir dir="${dist}"/>
</target>
<target name="compile" depends="init,util,semantics" description=""/>
<target name="util" depends="" description="">
<javac destdir="${build}" classpath="project.class.path" debug="on" srcdir="${src}/util" includeDestClasses="true" source="1.5">
<classpath refid="project.class.path"/>
</javac>
</target>
Esto parece funcionar, ¿alguna idea de por qué? –
Sí, cuando la hormiga busca los archivos fuente que han cambiado, no lee el contenido de ningún archivo, en particular, no lee la declaración del paquete de ninguna clase. En cambio, infiere el nombre completo de una clase desde su nombre de archivo y su ubicación en la jerarquía del directorio de origen. Entonces, por ejemplo, puede haber tenido una clase util.codec.Base64 cuyo código fuente estaba en $ {src} /util/codec/Base64.java, pero su tarea javac infería su nombre completo como codec.Base64 porque le dijiste que la raíz de la jerarquía del código fuente estaba en $ {src}/util en lugar de $ {src}. –