Ant - Tipos de datos

Ant proporciona varios tipos de datos predefinidos. No confunda el término "tipos de datos" con los que están disponibles en el lenguaje de programación, en cambio considérelos como un conjunto de servicios que ya están integrados en el producto.

Apache Ant proporciona los siguientes tipos de datos.

Conjunto de archivos

Los tipos de datos del conjunto de archivos representan una colección de archivos. Se utiliza como filtro para incluir o excluir archivos que coinciden con un patrón en particular.

Por ejemplo, consulte el siguiente código. Aquí, el atributo src apunta a la carpeta de origen del proyecto.

El conjunto de archivos selecciona todos los archivos .java en la carpeta de origen, excepto los que contienen la palabra 'Stub'. El filtro que distingue entre mayúsculas y minúsculas se aplica al conjunto de archivos, lo que significa que un archivo con el nombre Samplestub.java no se excluirá del conjunto de archivos.

<fileset dir = "${src}" casesensitive = "yes">
   <include name = "**/*.java"/>
   <exclude name = "**/*Stub*"/>
</fileset>

Conjunto de patrones

Un conjunto de patrones es un patrón que permite filtrar archivos o carpetas fácilmente basándose en ciertos patrones. Los patrones se pueden crear utilizando los siguientes metacaracteres:

  • ? - Coincide con un solo carácter.

  • * - Coincide con cero o muchos caracteres.

  • ** - Coincide con cero o muchos directorios de forma recursiva.

El siguiente ejemplo muestra el uso de un conjunto de patrones.

<patternset id = "java.files.without.stubs">
   <include name = "src/**/*.java"/>
   <exclude name = "src/**/*Stub*"/>
</patternset>

El conjunto de patrones se puede reutilizar con un conjunto de archivos de la siguiente manera:

<fileset dir = "${src}" casesensitive = "yes">
   <patternset refid = "java.files.without.stubs"/>
</fileset>

Lista de archivos

El tipo de datos de la lista de archivos es similar al conjunto de archivos, excepto por las siguientes diferencias:

  • filelist contiene listas de archivos con nombres explícitos y no admite comodines.

  • El tipo de datos de lista de archivos se puede aplicar a archivos existentes o no existentes.

Veamos el siguiente ejemplo del tipo de datos de lista de archivos. Aquí, el atributowebapp.src.folder apunta a la carpeta de origen de la aplicación web del proyecto.

<filelist id = "config.files" dir = "${webapp.src.folder}">
   <file name = "applicationConfig.xml"/>
   <file name = "faces-config.xml"/>
   <file name = "web.xml"/>
   <file name = "portlet.xml"/>
</filelist>

Conjunto de filtros

Al utilizar un tipo de datos de conjunto de filtros junto con la tarea de copia, puede reemplazar cierto texto en todos los archivos que coincida con el patrón con un valor de reemplazo.

Un ejemplo común es agregar el número de versión al archivo de notas de la versión, como se muestra en el siguiente código.

<copy todir = "${output.dir}">
   <fileset dir = "${releasenotes.dir}" includes = "**/*.txt"/>
   
   <filterset>
      <filter token = "VERSION" value = "${current.version}"/>
   </filterset>
</copy>

En este Código -

  • El atributo output.dir apunta a la carpeta de salida del proyecto.

  • El atributo releasenotes.dir apunta a la carpeta de notas de la versión del proyecto.

  • El atributo current.version apunta a la carpeta de la versión actual del proyecto.

  • La tarea de copia, como su nombre indica, se utiliza para copiar archivos de una ubicación a otra.

Camino

los pathEl tipo de datos se usa comúnmente para representar una ruta de clase. Las entradas de la ruta se separan mediante punto y coma o dos puntos. Sin embargo, estos caracteres se reemplazan en el tiempo de ejecución por el carácter separador de ruta del sistema en ejecución.

La ruta de clase se establece en la lista de archivos jar y clases del proyecto, como se muestra en el siguiente ejemplo.

<path id = "build.classpath.jar">
   <pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/>
   
   <fileset dir = "lib">
      <include name = "**/*.jar"/>
   </fileset>
</path>

En este código -

  • El atributo env.J2EE_HOME apunta a la variable de entorno J2EE_HOME.

  • El atributo j2ee.jar apunta al nombre del archivo jar de J2EE en la carpeta base de J2EE.