2010-10-01 8 views
6

En un proyecto que tenemos varias rutas de origen, por lo que define una trayectoria de referencia para ellos:¿Cómo puedo excluir archivos de una ruta de referencia en Ant?

<path id="de.his.path.srcpath"> 
    <pathelement path="${de.his.dir.src.qis.java}"/> 
    <pathelement path="${de.his.dir.src.h1.java}"/> 
    ... 
</path> 

Utilizando la referencia funciona bien en el <javac> etiqueta:

<src refid="de.his.path.srcpath" /> 

En el siguiente paso , tenemos que copiar los archivos que no son Java a la carpeta de ruta de clases:

<copy todir="${de.his.dir.bin.classes}" overwrite="true"> 
    <fileset refid="de.his.path.srcpath"> 
     <exclude name="**/*.java" /> 
    </fileset> 
</copy> 

Desafortunadamente, esto hace no porque los elementos "refid" y anidados no se pueden mezclar.

¿Hay alguna manera de obtener un conjunto de todos los archivos no Java en mi ruta de origen sin copiar la lista de rutas de origen en los catálogos de archivos individuales?

Respuesta

3

Aquí hay una opción. En primer lugar, utilice la tarea pathconvert para hacer un patrón adecuado para generar un conjunto de archivos:

<pathconvert pathsep="/**/*," 
      refid="de.his.path.srcpath" 
      property="my_fileset_pattern"> 
    <filtermapper> 
     <replacestring from="${basedir}/" to="" /> 
    </filtermapper> 
</pathconvert> 

Siguiente hacer el conjunto de archivos de todos los archivos de las rutas, excepto las fuentes de Java. Tenga en cuenta los arrastran comodín /**/* necesarios como pathconvert sólo los comodines dentro de la lista, no el que sea necesario al final:

<fileset dir="." id="my_fileset" includes="${my_fileset_pattern}/**/*" > 
    <exclude name="**/*.java" /> 
</fileset> 

Luego, su tarea copia sería:

<copy todir="${de.his.dir.bin.classes}" overwrite="true" > 
    <fileset refid="my_fileset" /> 
</copy> 

Para un transporte, en lugar de codificando el comodín de Unix /**/* puede considerar usar algo como:

<property name="wildcard" value="${file.separator}**${file.separator}*" /> 
Cuestiones relacionadas