| Apache Ant software | |
|---|---|
| Genere | Automazione dello sviluppo |
| Sviluppatore | Apache Software Foundation |
| Data prima versione | 19 luglio 2000 |
| Ultima versione | 1.10.16 (1º aprile 2026) |
| Sistema operativo | Multipiattaforma |
| Linguaggio | Java |
| Licenza | licenza Apache (licenza libera) |
| Sito web | ant.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.
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.
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.
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.
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>
| Controllo di autorità | VIAF (EN) 181177554 · LCCN (EN) n2002066009 · GND (DE) 4689797-5 · J9U (EN, HE) 987009950831905171 |
|---|