2011-07-01 12 views
10

He estado buscando en Google el artículo "Diferencias entre el conjunto de archivos y la ruta" durante algún tiempo, pero no he encontrado nada útil. Por ejemplo, ¿cuál es la diferencia entre lo siguiente (por ejemplo, hay un directorio de somedir , que contiene los archivos .jar y no tiene subdirectorios):¿Cuál es la diferencia entre una ruta anidada y un conjunto de archivos?

<path id="somePathId"> 
    <pathelement path="someDir"/> 
</path> 

<path id="someId"> 
    <path refid="somePathId" /> 
</path> 

y

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.*"> 
    </fileset> 
</path> 

?

+0

Por cierto, existe la posibilidad de especificar el archivo de un solo archivo. ¿No es mejor usar una ubicación en su lugar? – Dmitry

+0

Gracias, editó – Dmitry

Respuesta

2

Se utilizan en diferentes situaciones.

fileset se utiliza para especificar un grupo de archivos. Puede usar selector sy patternset s para obtener solo los archivos que desea.

classpath se utiliza para especificar las referencias de classpath. classpath se puede especificar con un único contenedor (location="..."), un ; o : lista separada de jar (path="...") o con colecciones de recursos anidados (como fileset).

También si desea depurar ellos, es diferente:

<echo message="Build-path: ${toString:build-path}" /> 

vs

<property name="debug.classpath" refid="classpath"/> 
<echo message="Classpath = ${debug.classpath}"/> 

En cuanto a las secuencias de comandos,

<path id="somePathId"> 
    <pathelement location="someDir"/> 
</path> 

no he probado, pero de acuerdo al documentationpath= espera un ; o : lista separada de jarras. Esto no es lo mismo que tu segundo ejemplo.

+0

¡Muchas gracias! ¡Eso realmente ayudó! – Dmitry

2

La principal diferencia entre una y una <path><fileset> es que en <fileset> puede especificar si desea incluir o excluir ciertos tipos de archivos (Básicamente, es un grupo de archivos dentro de una ruta ... no necesarios todos los archivos), por ejemplo:

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.java"> 
    <include name="*.properties"> 
    </fileset> 
</path> 
+0

AFAIK este ejemplo no funcionará porque buscará archivos que coincidan con ambas expresiones, es decir, '* .java' y' * .properties'. – Thresh

+2

Sí, eso es lo que estaba tratando de decir ... Estoy buscando estos dos archivos. Si no puede excluir un patrón, puede usar ' Arpit

+0

De todos modos, ¡gracias por la respuesta! – Dmitry

Cuestiones relacionadas