Ant è un tool che permette la configurazione, il build ed il deployment di progetti Java Complessi.
Sviluppato dall'Apache Software Foundation, Ant è un build tool, utilizzato per la compilazione, e l'installazione (deployment) di applicazioni Java complesse, quali Applicazioni Enterprise o software basati su Swing. Applicazioni di questo tipo, comportano l'esecuzione di diversi compiti, quali per esempio la compilazione di sorgenti, la creazione e cancellazione di directory di supporto, la crazione di file JAR, WAR, o EAR e l'installazione dei vari compomenti sviluppati, su Application Server remoti. Ant permette di organizzare, parametrizzare ed automatizzare questo tipo di operazioni.
Sebbene Ant sia un tool utilizzato e pensato prevalentemente per il programmatore, è fondamentale la sua conoscenza di base anche per il sistemista che si deve occupare della configurazione e del deployment di un'applicazione J2EE (Java 2 Enterprise Edition). Tra i vantaggi di Ant, vi è inoltre il fatto essere scritto esso stesso in Java (prerequisito all'installazione è la presenza del JDK) e quindi ulteriormente estendibile e portabile su diverse piattaforme.
Ant eseguie i suoi compiti, seguendo le istruzioni definite in un file chiamato build.xml
, in cui sono presenti speciali tag i quali servono definire i task da elaborare. Per default, Ant si aspetta di trovare questo file, nella directory corrente in cui è lanciato.
BUILDFILE
Il buildfile è il file di configurazione gestisce ogni operazione eseguita da Ant. Esso è scritto in linguaggio XML. La scelta dell'utilizzo di XML e' stata dettata da diversi vantaggi:
- semplicità della sintassi;
- facilità nel descrivere la procedura di build come albero gerarchico;
- il fatto che XML è gia' conosciuto da un programmatore Java in quanto utilizato in altri aspetti dello sviluppo quali Enterprise Java Beans (EJB) e Java Server Pages (JSP);
TASK
Ogni compito definito all'interno di Ant è un task. I task, all'interno di un build file, possono essere diversi, ed è possibile che l'escuzione di uno di essi dipenda dagli altri. Ad ogni task è possibile associare una descrizione e può contentere diversi tag a seconda dei compiti da svolgere. Le operazioni disponibili tramite i tag di ant, sono svariate, e vanno dalla copia di file via FTP, a quella mediante SCP, alla creazione, copia e cancellazione di directory, all'esecuzione di comandi CVS. Essendo per sua natura estendibile, è praticamente possibile gestire qualsiasi compito, aggiungendo nuove librerie.
PROPERTY e PROPERTY FILE
Le property rappresentano delle variabili che è possibile utilizzare all'interno di un build file. Posso essere definite internamente, solitamente in testa al file, oppure essere caricate da un file esterno detto file di property. Vengono utilizzate nel medesimo modo di una variabile di un linguaggio di programmazione o di uno script di shell.