Tutorial Apache Ant – Tipi di dati

0
72

Ant fornisce una serie di tipi di dati predefiniti. Non confondere il termine “tipi di dati” con quelli che sono disponibili nel linguaggio di programmazione, invece ANT li considera come una serie di servizi che sono costruiti già nel prodotto .

I seguenti tipi di dati sono forniti da Apache Ant.

Fileset

I tipi di dati set di file rappresenta un insieme di file. Viene utilizzato come filtro per includere o escludere file che corrispondono a un particolare modello.

Ad esempio, consultare il seguente codice. Qui, l’attributo src punta alla cartella di origine del progetto.

Il set di file seleziona tutti i file .java nella cartella di origine ad eccezione di quelli contengono la parola ‘Stub’. Il filtro tra maiuscole e minuscole viene applicato al set di file che significa un file con il nome Samplestub.java non sarà esclusa dal set di file.

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

Pattern set

Un modello di serie è un modello che permette di filtrare i file o le cartelle facilmente basati su alcuni modelli.I pattern possono essere creati utilizzando i seguenti meta caratteri :

  • ? – Corrisponde a un solo carattere.
  • * – Corrisponde a zero o più caratteri.
  • ** – Corrisponde a zero o più directory ricorsivamente.

Il seguente esempio illustra l’utilizzo di un set pattern.

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

Il patternset può quindi essere riutilizzato con un set di file nel modo seguente:

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

Elenco dei file

Il tipo di dati filelist è simile al file impostato ad eccezione delle seguenti differenze:

  • filelist contiene esplicitamente elenchi di file e non supporta i caratteri jolly.
  • tipo di dati filelist può essere applicato per i file inesistenti o esistenti .

Vediamo il seguente esempio del tipo di dati filelist. Qui, l’attributo webapp.src.folder punti alla cartella sorgente dell’applicazione web del progetto.

<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>

Set Filter

Utilizzando un tipo di dati filterset insieme con il compito di copia, è possibile sostituire un determinato testo in tutti i file che corrisponde al modello con un valore di sostituzione.

Un esempio comune è quello di aggiungere il numero di versione del file per le note di rilascio, come mostrato nel codice seguente.

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

In questo codice:

  • L’attributo output.dir punta alla cartella di output del progetto.
  • L’attributo releasenotes.dir punti per le note di rilascio della cartella del progetto.
  • L’attributo current.version punti alla cartella versione corrente del progetto.
  • L’operazione di copia, come suggerisce il nome, viene utilizzato per copiare i file da una posizione a un’altra.

Path

Il percorso tipo di dati viene comunemente utilizzato per rappresentare una classe-percorso. Le voci nel percorso sono separati e virgola o due punti. Tuttavia, questi caratteri vengono sostituiti al run-time per carattere separatore di percorso del sistema di esecuzione.

Il percorso di classe è impostato per l’elenco dei file jar e classi nel progetto, come mostrato nell’esempio seguente.

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

In questo codice:

  • L’attributo env.J2EE_HOME indica la variabile d’ambiente J2EE_HOME .
  • L’attributo j2ee.jar punti al nome del file jar J2EE nella cartella base J2EE.