2011-06-28 10 views
5

He creado un proyecto de biblioteca de Java. Los binarios están disponibles en <project-dir>/bin. Las clases de prueba están disponibles en <project-dir>/bin/com/myproject/test. Necesito excluir el archivo de mis clases de prueba. Entonces, escribí el siguiente código:Excluir el directorio de la clase de prueba para archivar en Ant

<target depends="build-all" name="build-dist"> 
    <jar destfile="app.jar" basedir="bin" excludes="com/myproject/test/*.class" /> 
</target> 

Esto funciona bien. Pero en el archivo el directorio test todavía está disponible. Cómo eliminar esto?

Gracias.

Respuesta

5

La mejor solución es mantener los archivos Java de clase y prueba en directorios diferentes. Entonces, en lugar de compilarlos en bin, compilarlos en un segundo paso en bin-test. Esto también asegura que el código que no es de prueba no puede ver las clases de prueba (la compilación fallará si accidentalmente importa una prueba en una clase de producción).

5
<jar destfile="app.jar" basedir="bin" excludes="com/myproject/test/" /> 
+2

El seguimiento ** no es necesario. Ver: http://ant.apache.org/manual/dirtasks.html#patterns 'Hay una "taquigrafía": si un patrón termina con/o \, entonces ** se agrega'. –

+0

Buen consejo; No era consciente. Actualicé la respuesta, gracias. –

Cuestiones relacionadas