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.

  • 🔨 Definizione di base: Ant è l'acronimo di Another Neat Tool (Un altro strumento utile) e converte il codice sorgente in un'applicazione eseguibile dalla riga di comando.
  • 📄 File di compilazione: Ogni istruzione risiede in un file XML, convenzionalmente denominato build.xml, che non richiede alcun linguaggio di programmazione aggiuntivo.
  • 🧱 Struttura a tre nodi: Un file di build annida sempre le attività all'interno dei target, e i target all'interno di un singolo elemento di progetto.
  • 🔗 Controllo della dipendenza: L'attributo depends ordina i target, quindi compile viene sempre eseguito prima di jar e prima di deployment.
  • ⚙️ Configurazione dell'ambiente: L'installazione richiede un JDK, la variabile ANT_HOME e l'aggiunta della cartella bin di Ant al percorso di sistema.
  • 🆚 Confronto degli strumenti: Ant offre libertà procedurale, Maven impone convenzioni con la gestione delle dipendenze e Gradle combina entrambi con una build basata su script.
  • 🌍 Vantaggio della portabilità: Una build viene eseguita in modo identico su Windows e Linux ovunque Java È disponibile una macchina virtuale.

Tutorial su Apache ANT

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

Anti Apache

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

Installa e configura Apache Ant su Windows

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.

Installa e configura Apache Ant su Windows

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.

  1. Fai clic con il pulsante destro del mouse sull'icona Questo PC.
  2. Clicca su Proprietà.

Installa e configura Apache Ant su Windows

Passo 4) Vai alle impostazioni di sistema.
Fare clic su "Impostazioni di sistema avanzate".

Installa e configura Apache Ant su Windows

Passo 5) Nelle proprietà del sistema,
fai clic sulla scheda “Avanzate”.

Installa e configura Apache Ant su Windows

Passo 6) Individua le variabili d'ambiente.
Fai clic sul pulsante “Variabili d’ambiente…”.

Installa e configura Apache Ant su Windows

Passo 7) Crea una nuova variabile.
Fare clic su "Nuovo" per creare una nuova variabile utente.

Installa e configura Apache Ant su Windows

Passo 8) Inserisci i dettagli della variabile.
Inserisci i dettagli della nuova variabile utente.

  1. Inserisci il nome della variabile come ANT_HOME.
  2. Inserisci come valore della variabile la cartella in cui è stato decompresso Ant, ad esempio C:\apache-ant-1.10.17.
  3. Fare clic sul pulsante "OK".

Installa e configura Apache Ant su Windows

Passo 9) Variabile creata.
Fare clic sul pulsante "OK".

Installa e configura Apache Ant su Windows

Passo 10) Chiudi lo schermo.
Fare clic su "OK" per chiudere la schermata.

Installa e configura Apache Ant su Windows

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:

Installa e configura Apache Ant su Windows

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 semplicemente ant, perché hello è dichiarato come destinazione predefinita. Per utilizzare un nome file diverso, eseguire ant -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

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 -projecthelp Elenca 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.

DOMANDE FREQUENTI

Ant è l'acronimo di Another Neat Tool (Un altro strumento utile). James Duncan Davidson lo creò nel luglio del 2000 mentre lavorava alla build di Tomcat e fu donato ad Apache Software Foundation.

No, ma Ant cerca di default il file build.xml nella directory corrente. Qualsiasi altro nome funziona se specificato con l'opzione -f o -buildfile sulla riga di comando.

Non da solo. Apache Ivy è il progetto complementare che aggiunge la risoluzione delle dipendenze e può scaricare artefatti dagli stessi repository utilizzati da Maven.

La cartella bin non è presente nella variabile Path oppure ANT_HOME punta alla directory errata. Apri un nuovo prompt dei comandi dopo aver modificato le variabili, poiché le finestre aperte mantengono i valori precedenti.

Sì, per i target standard di compilazione, jar e test. Verifica le voci del classpath e l'attributo includeantruntime, perché i file generati spesso li omettono e producono avvisi fuorvianti.

Sì, per preservare l'eredità Java sistemi, dove la build esistente non può essere migrata a basso costo. I nuovi progetti di solito iniziano con Maven o Gradle, che gli strumenti di intelligenza artificiale forniscono anche in modo più affidabile.

Riassumi questo post con: