Ant Che cos’è Come si utilizza Funzionalità principali Documentazione e Installazione Corso di Programmazione Internet
Ant - Cos’è È un “build” tool. Viene utilizzato per automatizzare le operazioni di compilazione, creazione di jar file e altro. È multipiattaforma : è scritto in java e legge un file di configurazione scritto in XML (build.xml) > ant ricerca automaticamente il file build.xml build.xml specifica cosa Ant deve fare, ne determina il comportamento Corso di Programmazione Internet
build.xml (1/2) project tag <project name="mioProgetto" default="compile" basedir="."> properties <property name="src" value="."/> build-in properties es: ${os.name} target tag (tipicamente ce ne sono più di uno) Posso avere un target di inizializzazione, uno per compilare, uno per creare un jar file etc... Corso di Programmazione Internet
build.xml (2/2) <target name="compile" depends="init”> <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="${build}"/> </target> Task Sono pezzi di codice che possono essere esegui. Esempi: javac, tstamp I task sono contenuti all’interno dei target. Esistono task predefiniti, ma altri se ne possono creare Corso di Programmazione Internet 1
Running Ant Opzioni a linea di comando find ricerca ricorsivamente il buil file nelle directory padre buildfile nomefile cerca nomefile anziché build.xml help stampa messaggio di aiuto version stampa la versione ed esce quiet esegue ma non stampa niente verbose esegue stampando molte informazioni Dproperty=value imposta il valore delle property Corso di Programmazione Internet
Alcuni Tasks (1/4) <tstamp\> Imposta le properties DSTAMP, TSTAMP, TODAY <javac> compila e scrive i .class nella directory di destinazione. Vengono compilati solo i file il cui .class corrispondente o non esiste o è meno recente del .java. Il compilatore da usare può essere specificato nella property build.compiler Se non specificato diversamente, vengono compilati tutti i file presenti nelle directory srcdir Corso di Programmazione Internet
Alcuni Tasks (2/4) <property name="src1" value= ”prova1"/> <property name="src2" value= ”prova2"/> … <javac srcdir=“${src1}:${src2}” destdir=“${build}” includes=“MioFile*.java” excludes=“MioFileOld.java”> Compila tutti e solo i file che si trovano nelle directory prova1 e prova2 il cui nome inizia con “MioFile”. Non compila MioFileOld.java Corso di Programmazione Internet 7
Alcuni Tasks (3/4) <javac srcdir=“${src1}” destdir=“${build}” includes=“MiaDir/*”> Compila tutti e solo i file presenti nella directory prova1\MiaDir\ includes=“MiaDir/**”> Compila tutti e solo i file presenti nella directory prova1\MiaDir\ e in tutti i file presenti in tutte le sue sottodirectory. Es: prova1\MiaDir\MiaDir2\Ciao\prova.java Corso di Programmazione Internet
<get> recupera un file da un’URL specificata Alcuni Tasks (4/4) <chmod> cambia i permessi dei file e/o delle directory. Funziona solo sotto UNIX <copyfile> copia uno o più file <copydir> copia un albero di directory <delete> cancella uno o più file <deltree> cancella una directory <exec> esegue un comando di sistema <zip> produce un file .zip <unzip> esegue l’unzip su un file .zip o .jar <get> recupera un file da un’URL specificata <mkdir> crea una directory Corso di Programmazione Internet
Documentazione e Installazione Ant home page : jakarta.apache.org/ant/index.html Ant user guide : www.itpath.com/userGuide.htm Su linux (macchine laboratorio): inserire nel file .cshrc-Linux le righe: setenv ANT_HOME $HOME/ANT/jakarta-ant-1.4.1 setenv JAVA_HOME /usr/local/jdk1.3 alias ant "$ANT_HOME/bin/ant" setenv PATH $PATH":$ANT_HOME/bin" setenv CLASSPATH "$ANT_HOME/lib/ant.jar" Corso di Programmazione Internet
Documentazione e Installazione Su windows, nel file Autoexec.bat aggiungere le seguenti righe: set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk1.3.1_01 set CLASSPATH=%ANT_HOME%\lib\ant.jar PATH=%ANT_HOME%\bin Su windows 95/98 potrebbe dare il problema di “spazio d’ambiente esaurito”, quindi occorre aggiungere la seguente riga al file config.sys shell=c:\command.com /E:4096 /P Corso di Programmazione Internet