Tutorial su Apache ANT: cos'è Ant Build Tool? Esempio
⚡ Riepilogo intelligente
Apache ANT è un Java strumento di build basato su che automatizza la compilazione, il test, il packaging e la distribuzione tramite un file di build XML. Questo articolo definisce lo strumento, traccome la sua storia, copre Windows installazione, spiega la struttura del progetto e la confronta con Maven e Gradle.

Cos'è uno strumento di creazione?
Uno strumento di compilazione è uno strumento di programmazione utilizzato per creare una nuova versione di un programma. Automatizza la creazione di un'applicazione eseguibile da qualsiasi codice sorgente.
Senza uno strumento di compilazione, uno sviluppatore dovrebbe compilare manualmente ogni file sorgente, copiare le risorse, eseguire la suite di test e impacchettare il risultato dopo ogni modifica. Uno strumento di compilazione registra questi passaggi una sola volta e li ripete in modo identico su ogni macchina.
Cos'è Apache Ant?
Anti Apache è un Javastrumento da riga di comando basato su per la creazione Java applicazioni con la piena portabilità di pure Java codice. Consente agli sviluppatori di adottare principi agili e lo sviluppo guidato dai test per automatizzare le attività di sviluppo ripetitive come la generazione della documentazione. Ant è l'acronimo di Another Neat Tool (Un altro strumento utile).
Come mostra il diagramma, Ant legge un file di build, risolve l'ordine dei target al suo interno e quindi esegue le singole attività che compilano, copiano, testano e impacchettano l'applicazione.
A cosa serve lo strumento Apache Ant Build?
Ecco i principali vantaggi derivanti dall'utilizzo dello strumento di compilazione:
- Uno strumento di build consente di automatizzare attività ripetitive specifiche, come la compilazione del codice sorgente, l'esecuzione di test software e la creazione di file per la distribuzione del software.
- Gli strumenti di creazione vengono eseguiti principalmente senza un'interfaccia utente grafica.
- Consente di convertire il codice sorgente in codice eseguibile.
- Offre la possibilità di ricompilare un file solo se necessario.
- Consente di compilare un gran numero di file in un tempo relativamente breve.
- Due strumenti di creazione molto popolari utilizzati da Java gli sviluppatori sono Apache Maven e formica.
Storia di Apache Ant
Ora scopriremo la storia dello strumento di build Apache Ant.
Ecco alcuni importanti punti di riferimento storici dello strumento Apache Ant:
- James Duncan Davidson ha creato Ant nel luglio del 2000.
- Inizialmente veniva utilizzato per la creazione di Tomcat ed era incluso come componente fisso nel kit di distribuzione di Tomcat.
- Nel maggio 2014 è stata rilasciata la versione 1.9.4 di Apache Ant, dotata di numerose funzionalità avanzate.
- La linea 1.10.x è stata avviata nel 2017 e rimane il ramo attivamente mantenuto.
- La versione 1.10.17 è stata rilasciata il 10 aprile 2026 e richiede un minimo Java 8 tempo di esecuzione.
Caratteristiche di Apache Ant
Ecco le caratteristiche essenziali di Apache Ant:
- È un progetto open source.
- Consente di eseguire build su entrambi Windows e sistemi UNIX o Linux.
- Ti serve solo un JVM, poiché funziona ovunque sia disponibile una JVM.
- Offre una vasta gamma di attività predefinite.
- Consente di copiare file da una posizione all'altra.
- Offre un'interfaccia per sviluppare attività personalizzate.
- Consente di avviare le build dalla riga di comando, che si integra facilmente con IDE gratuiti e commerciali.
- Consente di distribuire i file binari su un server di test.
- Offre un'architettura estensibile.
- Offre compatibilità con le versioni precedenti.
Come installare e configurare Apache Ant su Windows
Ora impareremo il processo di installazione di Apache Ant su Windows.
Partiamo dal presupposto che tu abbia già scaricato e installato il file Java Kit di sviluppo (JDK) sul tuo computer. Assicurati che la variabile d'ambiente JAVA_HOME sia impostata sulla cartella in cui è installato il tuo JDK. Segui i passaggi seguenti per installare Ant:
Passo 1) Scarica i binari.
Scarica i binari da https://ant.apache.org/bindownload.cgi
Passo 2) Decomprimi i file.
Decomprimi questo file zip in una posizione comoda come la cartella c:\, utilizzando WinZip, WinRAR, 7-Zip, o uno strumento simile.
Passo 3) Crea una variabile d'ambiente.
Crea una variabile d'ambiente denominata "ANT_HOME" e assegna il valore di tale variabile al percorso della cartella di Ant.
- Fai clic con il pulsante destro del mouse sull'icona Questo PC.
- Clicca su Proprietà.
Passo 4) Vai alle impostazioni di sistema.
Fare clic su "Impostazioni di sistema avanzate".
Passo 5) Nelle proprietà del sistema,
fai clic sulla scheda “Avanzate”.
Passo 6) Individua le variabili d'ambiente.
Fai clic sul pulsante “Variabili d’ambiente…”.
Passo 7) Crea una nuova variabile.
Fare clic su "Nuovo" per creare una nuova variabile utente.
Passo 8) Inserisci i dettagli della variabile.
Inserisci i dettagli della nuova variabile utente.
- Inserisci il nome della variabile come ANT_HOME.
- Inserisci come valore della variabile la cartella in cui è stato decompresso Ant, ad esempio C:\apache-ant-1.10.17.
- Fare clic sul pulsante "OK".
Passo 9) Variabile creata.
Fare clic sul pulsante "OK".
Passo 10) Chiudi lo schermo.
Fare clic su "OK" per chiudere la schermata.
Suggerimento: ANT_HOME deve puntare alla cartella di installazione stessa, non alla cartella bin al suo interno. Quindi aggiungi %ANT_HOME%\bin alla variabile Path, in modo che il comando ant venga riconosciuto da qualsiasi directory.
È possibile verificare una corretta installazione di Ant tramiteping il comando “ant -version” nel prompt dei comandi.
Vedrai la seguente schermata:
Esempio di Apache ANT
Il file di build seguente definisce un singolo target chiamato hello che stampa un messaggio. L'elemento project dichiara un nome e un target predefinito, in modo che Ant sappia cosa eseguire quando non viene specificato alcun target sulla riga di comando.
<?xml version="1.0"?> <project name="HelloWorld" default="hello" basedir="."> <target name="hello"> <echo>Hello, World</echo> </target> </project>
Salva questo file come "build.xml", quindi segui questi due passaggi:
- Apri il prompt dei comandi e spostati nella directory che contiene il file build.xml.
- Correre
ant hello, o semplicementeant, perché hello è dichiarato come destinazione predefinita. Per utilizzare un nome file diverso, eseguireant -f mybuild.xml hello.
Produzione:
Buildfile: C:\projects\demo\build.xml
hello:
[echo] Hello, World
BUILD SUCCESSFUL
Total time: 0 seconds
Struttura del progetto ANT
Struttura del progetto ANT
Come mostra il diagramma della struttura, ogni build conterrà tre nodi:
- Progetto
- Target
- Task
Progetto
Tutto all'interno del file di build in Apache ANT è sotto un progetto.
Attributi:
- Nome e Cognome: Il nome del progetto.
- Baseir: Questa è la directory da cui verranno calcolati tutti i percorsi. Può essere sovrascritta utilizzando la proprietà "basedir".
- Predefinito: Consente di definire la destinazione predefinita per questo progetto. Se non viene specificata alcuna destinazione, Ant eseguirà quella predefinita.
Target
Un obiettivo è un insieme di attività, definite per raggiungere uno stato specifico nel processo di compilazione.
Attributi:
- Nome e Cognome: Nome del bersaglio (obbligatorio).
- Descrizione: Descriptione del bersaglio.
- Dipende: Da quale obiettivo dipende questo obiettivo attuale.
- Se: Esegue l'obiettivo solo se è stato impostato un valore per la proprietà di destinazione.
- Salvo che: Esegue l'obiettivo solo se il valore della proprietà non è impostato.
Compiti
Un task è una porzione di codice che può essere eseguita. I task hanno più argomenti o attributi.
Il metodo generale per scrivere un'attività è il seguente:
<name attribute1="value" attribute2="value2"…/>
Puoi utilizzare un'attività predefinita oppure crearne una personalizzata. La tabella seguente elenca le attività che compaiono in quasi tutti i casi. Java File di compilazione.
| Task | Missione | Attributi tipici |
|---|---|---|
| eco | Stampa un messaggio sulla console | messaggio |
| mkdir | Crea una directory | dir |
| delete | Rimuovere file o directory | dir, includeemptydirs |
| javac | Compilare Java file sorgenti | srcdir, destdir, includeantruntime |
| vaso | Raggruppa le classi in un archivio jar | file di destinazione, indirizzo di base |
| copia | Copiare i file tra le posizioni | file, todir |
| giugno | Esegui unit test | haltonfailure, printsummary |
Esempio completo di build.xml con più Targets
Un file di build realistico concatena diversi target. L'attributo depends garantisce l'ordine, quindi Ant pulisce la cartella di output, compila il codice sorgente e solo dopo crea il file jar.
<?xml version="1.0"?> <project name="DemoApp" default="jar" basedir="."> <!-- reusable values --> <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> <target name="clean" description="Remove previous output"> <delete dir="${build.dir}"/> </target> <target name="compile" depends="clean" description="Compile sources"> <mkdir dir="${build.dir}/classes"/> <javac srcdir="${src.dir}" destdir="${build.dir}/classes" includeantruntime="false"/> </target> <target name="jar" depends="compile" description="Package the jar"> <mkdir dir="${build.dir}/jar"/> <jar destfile="${build.dir}/jar/DemoApp.jar" basedir="${build.dir}/classes"> <manifest> <attribute name="Main-Class" value="com.guru99.Main"/> </manifest> </jar> </target> </project>
Produzione:
Buildfile: C:\projects\DemoApp\build.xml
clean:
[delete] Deleting directory C:\projects\DemoApp\build
compile:
[mkdir] Created dir: C:\projects\DemoApp\build\classes
[javac] Compiling 3 source files to C:\projects\DemoApp\build\classes
jar:
[mkdir] Created dir: C:\projects\DemoApp\build\jar
[jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar
BUILD SUCCESSFUL
Total time: 1 second
Apache Ant vs Maven vs Gradle
Tre strumenti di costruzione dominano il Java ecosistema, e ognuno assume una posizione diversa su quanta struttura imporre.
| Parametro | Anti Apache | Apache Maven | Gradle |
|---|---|---|---|
| Formato dello script di compilazione | XML | XML | Groovy o Kotlin DSL |
| Approccio | Procedurale, definisci ogni passaggio | Dichiarativo, convenzione anziché configurazione | Dichiarativo con estensioni scriptate |
| Gestione delle dipendenze | Non integrato, aggiunto tramite Apache Ivy | Costruito con repository centrale | Integrato, compatibile con Maven |
| Struttura del progetto | Completamente gratis | Layout standard fisso | Basato su convenzioni ma sovrascrivibile |
| Build incrementali | Limitato | Limitato | Sì, con una cache di build |
| Curva di apprendimento | Basso per gli utenti XML | Moderato | Più ripido, richiede il DSL |
| adatto per | Progetti storici e costruzioni altamente personalizzate | Standard Java progetti | Grandi moduli e Android progetti |
Ant rimane la scelta pragmatica quando una build non si adatta a un layout standard o quando un progetto esistente dipende già da target scritti manualmente.
migliori pratiche di utilizzo di Apache Ant
Ecco alcune best practice per l'utilizzo di Apache Ant.
- Dovresti automatizzare la numerazione delle build utilizzando i file delle proprietà.
- Implementa una build configurabile con l'aiuto di file di proprietà predefiniti e di build. Questi file ti consentono di memorizzare proprietà che definiscono i dati per il tuo processo di build, come la versione del compilatore e le impostazioni di ottimizzazione.
- È possibile riutilizzare le librerie predefinite utilizzando i file delle proprietà della libreria.
- Assegna a ogni obiettivo un attributo di descrizione, in modo che
ant -projecthelpElenca un riepilogo utilizzabile della build. - Mantieni separata la destinazione pulita e non eliminare mai una directory che contiene anche i file sorgente.
Vantaggi dell'utilizzo di Apache Ant
Ecco i vantaggi derivanti dall'utilizzo di Apache Ant:
- Ant è indipendente dalla piattaforma, quindi ti aiuta a gestire proprietà specifiche di ciascuna piattaforma, come i separatori di file.
- Ant consente di eseguire attività specifiche della piattaforma, come la modifica della data di ultima modifica di un file tramite il comando 'touch'.
- Gli script Ant sono scritti usando un linguaggio semplice XMLPertanto, se hai già familiarità con XML, sarai in grado di imparare Ant rapidamente.
- Ant offre un lungo elenco di attività predefinite.
- Offre un'interfaccia per lo sviluppoping compiti personalizzati.
- È possibile richiamare Ant facilmente dalla riga di comando, il che consente l'integrazione con IDE gratuiti e commerciali.
- È sufficiente una JVM, quindi il programma funziona ovunque sia disponibile una JVM.
- Apache Ant è una libreria open source che consente agli utenti di accedere al codice sorgente e riprodurlo.
- Apache Ant è uno strumento multipiattaforma che consente di gestire Java classpath e struttura delle directory dei file in modo conveniente.
- Apache Ant è facilmente estensibile utilizzando Java e altri linguaggi di programmazione.
- Apache Ant offre supporto integrato per lo sviluppo J2EE, come la compilazione e il packaging di EJB.
- È possibile utilizzarlo sia per un piccolo progetto personale che per un progetto software o un sito web di grandi dimensioni.
Ant viene spesso abbinato a un test runner e a un server di integrazione continua. Vedi JUnit per il livello di test, Jenkins per le build programmate e utilizzando Apache Ant con Selenium per l'automazione dei test del browser. I report prodotti durante una build possono essere visualizzati con Jasper Reports.













