Apache Ant

Apache Ant
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereAutomazione dello sviluppo
SviluppatoreApache Software Foundation
Data prima versione19 luglio 2000
Ultima versione1.10.16 (1º aprile 2026)
Sistema operativoMultipiattaforma
LinguaggioJava
Licenzalicenza Apache
(licenza libera)
Sito webant.apache.org

Apache Ant è un software per l'automazione del processo di build. È simile a make, ma scritto in Java ed è principalmente orientato allo sviluppo in Java. Ant è un progetto Apache, open source, ed è distribuito sotto licenza Apache.

Storia

Il nome Ant è un acronimo di Another Neat Tool (in italiano "Un altro strumento utile"), concepito da James Duncan Davidson mentre preparava il motore di riferimento JSP e Servlet di Sun Microsystems, in seguito diventato Apache Tomcat, per il rilascio come software open source. Per la sua compilazione sulla piattaforma Solaris veniva utilizzata una versione proprietaria di Make, ma nel mondo open source non era possibile controllare quale piattaforma venisse utilizzata per compilare Tomcat; pertanto, Ant è stato creato come semplice strumento indipendente dalla piattaforma per compilare Tomcat a partire dalle direttive contenute in un “file di compilazione” XML. Ant (versione 1.1) è stato ufficialmente rilasciato come prodotto autonomo il 19 luglio 2000.

Sono state avanzate diverse proposte per una versione 2 di Ant, come AntEater di James Duncan Davidson, Myrmidon di Peter Donald e Mutant di Conor MacNeill, nessuna delle quali è riuscita a ottenere un ampio consenso tra la comunità degli sviluppatori.

Un tempo (nel 2002), Ant era lo strumento di build utilizzato dalla maggior parte dei progetti di sviluppo Java.[8] Ad esempio, la maggior parte degli sviluppatori Java open source includeva file build.xml nelle proprie distribuzioni. Poiché Ant rendeva semplicissimo integrare i test JUnit nel processo di build, consentiva agli sviluppatori di adottare lo sviluppo guidato dai test (TDD) e l’extreme programming.

Nel 2004 Apache ha creato un nuovo strumento con uno scopo simile chiamato Maven.

Gradle, un software simile, è stato creato nel 2008 e, a differenza di Maven, utilizza codice Groovy (e alcuni altri linguaggi) invece dell’XML.

Esempio di file build.xml

Esso si basa su script in formato XML di cui segue un esempio:

<?xml version="1.0"?>
<project name="Hello" default="compile">
    <target name="clean" description="remove intermediate files">
        <delete dir="classes"/>
    </target>
    <target name="clobber" depends="clean" description="remove all artifact files">
        <delete file="hello.jar"/>
    </target>
    <target name="compile" description="compile the Java source code to class files">
        <mkdir dir="classes"/>
        <javac srcdir="." destdir="classes"/>
    </target>
    <target name="jar" depends="compile" description="create a Jar file for the application">
        <jar destfile="hello.jar">
            <fileset dir="classes" includes="**/*.class"/>
            <manifest>
                <attribute name="Main-Class" value="HelloProgram"/>
            </manifest>
        </jar>
    </target>
</project>

Ogni build file definisce un project composto da target in cui sono elencati i task, le istruzioni da eseguire. Nel progetto possono essere definite delle properties, coppie nome e valore immodificabili nel resto del progetto. I target possono avere delle dipendenze da altri target.

Portabilità

La principale caratteristica di ant è la portabilità; per esempio comandi strettamente dipendenti dalla piattaforma come rm –rf classes nell'esempio precedente sono semplicemente eseguiti indipendentemente dalla piattaforma dal comando <delete dir="classes"/> del target clean.

Una discrepanza comune tra le varie piattaforme è il modo in cui il percorso delle directory è specificato. UNIX usa uno slash (/) per delimitare i componenti di un path, a differenza di Microsoft Windows che usa un backslash (\). La sintassi ant lascia libero l'autore del codice di usare una convenzione qualsiasi, back/forward slash per le directory, punto e virgola o due punti (; o :) per i separatori dei path (classpath). Ant converte tutto nella forma più appropriata alla piattaforma corrente.

Uso

Ant viene eseguito da riga di comando e la sintassi del comando è sempre a disposizione eseguendo il comando: ant --help

Tipicamente viene usato nel modo seguente: ant –buildfile <build_file>.xml –D<proprieta1>=<valore1> –D<proprieta2>=<valore2> <target1> <target2>

Note

  1. ↑ (EN) Apache Ant - Frequently Asked Questions, su Apache Ant, Apache Software Foundation. URL consultato il 13 settembre 2026.
  2. ↑ (EN) Richard Hightower e Nicholas Lesiecki, Java Tools for eXtreme Programming: Mastering Open Source Tools, Including Ant, JUnit, and Cactus, Wiley, 2002, p. 76, ISBN 047120708X.
  3. ↑ (EN) Using Apache Ant - Writing a Simple Buildfile, su Apache Ant Manual, Apache Software Foundation. URL consultato il 12 settembre 2026.

Altri progetti

Collegamenti esterni

Controllo di autoritàVIAF (EN) 181177554 · LCCN (EN) n2002066009 · GND (DE) 4689797-5 · J9U (EN, HE) 987009950831905171
  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero