Apache Ant
| 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.
Storia
[modifica | modifica wikitesto]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.[1]
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.[2] 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
[modifica | modifica wikitesto]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.[3]
Portabilità
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- ↑ (EN) Apache Ant - Frequently Asked Questions, su Apache Ant, Apache Software Foundation. URL consultato il 13 settembre 2026.
- ↑ (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.
- ↑ (EN) Using Apache Ant - Writing a Simple Buildfile, su Apache Ant Manual, Apache Software Foundation. URL consultato il 12 settembre 2026.
Altri progetti
[modifica | modifica wikitesto]
Wikibooks contiene testi o manuali in lingua inglese su Apache Ant
Wikimedia Commons contiene immagini o altri file su Apache Ant
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su ant.apache.org.
- Apache Ant, su packages.debian.org.
- Repository sorgenti di Apache Ant, su git-wip-us.apache.org.
- Repository sorgenti di Apache Ant, su gitbox.apache.org.
- Sito di segnalazione bug, su bz.apache.org.
- (EN) Apache Ant, su Free Software Directory.
- (EN) Licenza di Apache Ant, su ant.apache.org.
- (EN) Nuove Caratteristiche di Ant ver. 1.6, su oracle.com.
- (EN) Task di Deploy per OC4J, su radio.weblogs.com. URL consultato il 13 luglio 2006 (archiviato dall'url originale il 16 luglio 2006).
| Controllo di autorità | VIAF (EN) 181177554 · LCCN (EN) n2002066009 · GND (DE) 4689797-5 · J9U (EN, HE) 987009950831905171 |
|---|

