ANT

53 %
47 %
Information about ANT

Published on March 10, 2008

Author: jgiudici

Source: slideshare.net

ANT [email_address]

Cosa è ant Ant è un tool scritto in Java che permette di organizzare la creazione e il deploy di classi java in ambienti distribuiti e multipiattaforma Ant è basato su un unico programma che legge le azioni da intraprendere da un file XML (default: build.xml) È open source e freeware, scaricabile dal sito: http://ant.apache.org

Ant è un tool scritto in Java che permette di organizzare la creazione e il deploy di classi java in ambienti distribuiti e multipiattaforma

Ant è basato su un unico programma che legge le azioni da intraprendere da un file XML (default: build.xml)

È open source e freeware, scaricabile dal sito:

http://ant.apache.org

Vantaggi di ant È possibile compilare le classi utilizzando il jdk installato sul sistema finale Non è necessario avere un IDE installato o creare lunghi file batch per compilare le classi con tutti i riferimenti alle librerie necessarie È possibile automatizzare l’avvio o il deploy delle applicazioni al termine della compilazione È possibile far creare con semplici passaggi degli archivi .jar, .war o .ear per il deployment delle classi

È possibile compilare le classi utilizzando il jdk installato sul sistema finale

Non è necessario avere un IDE installato o creare lunghi file batch per compilare le classi con tutti i riferimenti alle librerie necessarie

È possibile automatizzare l’avvio o il deploy delle applicazioni al termine della compilazione

È possibile far creare con semplici passaggi degli archivi .jar, .war o .ear per il deployment delle classi

Installazione di ant Scaricare ant e decomrimerlo in una cartella (consiglio la stessa in cui è installato Tomcat) Inserire il path della cartella di ant nella variabile ANT_HOME Inserire nella variabile PATH il percorso ANT_HOME/bin

Scaricare ant e decomrimerlo in una cartella (consiglio la stessa in cui è installato Tomcat)

Inserire il path della cartella di ant nella variabile ANT_HOME

Inserire nella variabile PATH il percorso ANT_HOME/bin

Un primo programma in ant Creare il file build.xml contenente il seguente testo: <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project name= &quot;MyProject&quot; default= &quot;myTarget&quot; basedir= &quot;.&quot; > <target name= &quot;myTarget&quot; depends= &quot;myTarget.check&quot; if= &quot;myTarget.run&quot; > <echo> Files foo.txt and bar.txt are present. </echo> </target> <target name= &quot;myTarget.check&quot; > <condition property= &quot;myTarget.run&quot; > <and> <available file= &quot;foo.txt&quot; /> <available file= &quot;bar.txt&quot; /> </and> </condition> </target> </project>

Creare il file build.xml contenente il seguente testo:

<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>

<project name= &quot;MyProject&quot; default= &quot;myTarget&quot; basedir= &quot;.&quot; >

<target name= &quot;myTarget&quot; depends= &quot;myTarget.check&quot; if= &quot;myTarget.run&quot; >

<echo> Files foo.txt and bar.txt are present. </echo>

</target>

<target name= &quot;myTarget.check&quot; >

<condition property= &quot;myTarget.run&quot; >

<and>

<available file= &quot;foo.txt&quot; />

<available file= &quot;bar.txt&quot; />

</and>

</condition>

</target>

</project>

Eseguire ant Aprire una shell di comandi e spostarsi nella directory in cui si è creato il file build.xml Eseguire il comando # ant Se non esistono i file foo.txt e bar.txt non si vedrà la scritta Files foo.txt and bar.txt are present. Creare i file e rieseguire ant

Aprire una shell di comandi e spostarsi nella directory in cui si è creato il file build.xml

Eseguire il comando

# ant

Se non esistono i file foo.txt e bar.txt non si vedrà la scritta

Files foo.txt and bar.txt are present.

Creare i file e rieseguire ant

Classpath <classpath> <pathelement path= &quot;${classpath}&quot; /> <fileset dir= &quot;lib&quot; > <include name= &quot;**/*.jar&quot; /> </fileset> <pathelement location= &quot;classes&quot; /> <dirset dir= &quot;${build.dir}&quot; > <include name= &quot;apps/**/classes&quot; /> <exclude name= &quot;apps/**/*Test*&quot; /> </dirset> <filelist refid= &quot;third-party_jars&quot; /> </classpath>

Tag java Il tag java è utilizzato per eseguire una classe: <java classname= &quot;test.Main&quot; > <arg value= &quot;-h&quot; /> <classpath> <pathelement location= &quot;dist/test.jar&quot; /> <pathelement path= &quot;${java.class.path}&quot; /> </classpath> </java>

Il tag java è utilizzato per eseguire una classe:

Tag javac <javac srcdir= &quot;${src}&quot; destdir= &quot;${build}&quot; /> Il tag javac è usato per compilare una o più classi: Anche con svariati attributi di compilazione: <javac sourcepath= &quot;&quot; srcdir= &quot;${src}&quot; destdir= &quot;${build}&quot; > <include name= &quot;**/*.java&quot; /> <exclude name= &quot;**/Example.java&quot; /> </javac>

Tag property the url from which to read properties. <property url=&quot;http://www.mysite.com/bla/foo.properties&quot;/> url the filename of the property file. <property file=&quot;ant-global.properties&quot;/> <property file=&quot;${user.home}/ant-global.properties&quot;/> file the resource name of the property file. <property resource=&quot;foo.properties&quot;/> resource Sets the property to the absolute filename of the given file. <property name=&quot;src&quot; location=&quot;src&quot;/> location the value of the property. <property name=&quot;compile&quot; value=&quot;2&quot;/> value the name of the property to set. <property name=&quot;src&quot; … name Description Attribute

Un semplice buildfile <project name= &quot;MyProject&quot; default= &quot;dist&quot; basedir= &quot;.&quot; > <description> simple example build file </description> <!-- set global properties for this build --> <property name= &quot;src&quot; location= &quot;src&quot; /> <property name= &quot;build&quot; location= &quot;build&quot; /> <property name= &quot;dist&quot; location= &quot;dist&quot; /> <target name= &quot;init&quot; > <!-- Create the time stamp --> <tstamp/> <!-- Create the build directory structure --> <mkdir dir= &quot;${build}&quot; /> </target>

Un semplice buildfile <target name= &quot;compile&quot; depends= &quot;init&quot; description= &quot;compile&quot; > <!-- Compile the java code from ${src} into ${build} --> <javac srcdir= &quot;${src}&quot; destdir= &quot;${build}&quot; /> </target> <target name= &quot;dist&quot; depends= &quot;compile&quot; description= &quot;generate the distribution&quot; > <!-- Create the distribution directory --> <mkdir dir= &quot;${dist}/lib&quot; /> <!– put ${build}into the MyProject-${DSTAMP}.jar file --> <jar jarfile= &quot;${dist}/lib/MyProject-${DSTAMP}.jar&quot; basedir= &quot;${build}&quot; /> </target>

Un semplice buildfile <target name= &quot;clean&quot; description= &quot;clean up&quot; > <!-- Delete the ${build} and ${dist} directory --> <delete dir= &quot;${build}&quot; /> <delete dir= &quot;${dist}&quot; /> </target> </project>

Diversi target Eseguendo il comando # ant <target> Dove <target> è il nome di un target definito nel file build.xml, viene eseguito solo quel particolare target.

Eseguendo il comando

# ant <target>

Dove <target> è il nome di un target definito nel file build.xml, viene eseguito solo quel particolare target.

Esempio buildfile con più target <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project name= &quot;EJB Mail BottegaVerde Project&quot; default= &quot;ejb-jar&quot; basedir= &quot;.&quot; > <target name= &quot;init&quot; > <!-- Project Directories --> <property name= &quot;src.dir&quot; value= &quot;${basedir}/ejbModule&quot; /> <property name= &quot;classes.dir&quot; value= &quot;${basedir}/classes&quot; /> <property name= &quot;resources.dir&quot; value= &quot;${basedir}/resources&quot; /> <!-- Archive names --> <property name= &quot;archive.name&quot; value= &quot;bottegaVerdeMail&quot; /> <!-- Sets the jboss directory from the local environment --> <property environment= &quot;env&quot; /> <!-- Override with your JBoss server dist location if JBOSS_DIST is not set --> <property name= &quot;jboss.dist&quot; value= &quot;${env.JBOSS_DIST}&quot; /> </target> <target name= &quot;compile&quot; depends= &quot;init&quot; > <mkdir dir= &quot;${classes.dir}&quot; /> <javac srcdir= &quot;${src.dir}&quot; destdir= &quot;${classes.dir}&quot; debug= &quot;on&quot; deprecation= &quot;on&quot; optimize= &quot;off&quot; > <classpath> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </javac> </target>

Esempio buildfile con più target <target name= &quot;ejb-jar&quot; depends= &quot;compile&quot; > <delete file= &quot;${classes.dir}/${archive.name}.jar&quot; /> <jar jarfile= &quot;${classes.dir}/${archive.name}.jar&quot; > <fileset dir= &quot;${classes.dir}&quot; excludes= &quot;**/*Client.class&quot; /> <zipfileset dir= &quot;${resources.dir}&quot; prefix= &quot;META-INF&quot; includes= &quot;*.xml&quot; /> </jar> </target> <target name= &quot;deploy&quot; depends= &quot;ejb-jar&quot; > <copy file= &quot;${classes.dir}/${archive.name}.jar&quot; todir= &quot;${env.JBOSS_DIST}/server/default/deploy&quot; /> </target> <target name= &quot;undeploy&quot; > <delete file= &quot;${env.JBOSS_DIST}/server/default/deploy/${archive.name}.jar&quot; /> </target> <target name= &quot;testStateless&quot; depends= &quot;compile&quot; > <java classname= “org.ubitek.stateless.TestStatelessClient&quot; fork= &quot;yes&quot; > <classpath> <pathelement location= &quot;${classes.dir}&quot; /> <pathelement location= &quot;${resources.dir}&quot; /> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </java> </target>

Esempio buildfile con più target <target name= &quot;testStateful&quot; depends= &quot;compile&quot; > <java classname= “org.ubitek.stateful.TestStatefulClient&quot; fork= &quot;yes&quot; > <classpath> <pathelement location= &quot;${classes.dir}&quot; /> <pathelement location= &quot;${resources.dir}&quot; /> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </java> </target> <target name= &quot;testBMP&quot; depends= &quot;compile&quot; > <java classname= &quot;org.ubitek.bmp.CDClient&quot; fork= &quot;yes&quot; > <classpath> <pathelement location= &quot;${classes.dir}&quot; /> <pathelement location= &quot;${resources.dir}&quot; /> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </java> </target> <target name= &quot;testCMP&quot; depends= &quot;compile&quot; > <java classname= &quot;com.imolinfo.entity.cmp20.CDClient&quot; fork= &quot;yes&quot; > <classpath> <pathelement location= &quot;${classes.dir}&quot; /> <pathelement location= &quot;${resources.dir}&quot; /> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </java> </target>

Esempio buildfile con più target <target name= &quot;testMD&quot; depends= &quot;compile&quot; > <java classname= “org.ubitek.message.TestMDBean&quot; fork= &quot;yes&quot; > <classpath> <pathelement location= &quot;${classes.dir}&quot; /> <pathelement location= &quot;${resources.dir}&quot; /> <fileset dir= &quot;${jboss.dist}/client&quot; includes= &quot;**/*.jar&quot; /> </classpath> </java> </target> <target name= &quot;clean&quot; depends= &quot;init&quot; > <delete dir= &quot;${classes.dir}&quot; /> </target> </project>

Add a comment

Related pages

Apache Ant - Welcome

Welcome Apache Ant™ Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and ...
Read more

Apache Ant – Wikipedia

Apache Ant (englisch für Ameise) ist ein in Java geschriebenes Programm zum automatisierten Erzeugen von ausführbaren Computerprogrammen aus Quelltexten.
Read more

Ant Video Downloader :: Add-ons für Firefox

Ant Video Downloader 2.4.7.42 von Ant.com. It has never been simplier to download videos from Youtube, Dailymotion and from most of the video streaming site.
Read more

Garmin | Germany | Sport extras » Trainingsdaten » ANT

Training Center mit Garmin ANT Agent™ Der Garmin ANT Agent erfasst alle gekoppelten Garmin ANT Geräte in Reichweite und lädt automatisch alle neuen ...
Read more

dict.cc | ant | Wörterbuch Englisch-Deutsch

Übersetzung für ant im Englisch-Deutsch-Wörterbuch dict.cc.
Read more

ANT - Computer Network Technology GmbH -> Hard- und ...

ANT - Computer Network Technology GmbH ist ein EDV-Systemhaus das PC-Netzwerke plant, vertreibt und wartet. Schwerpunkt sind hierbei Microsoft- und Novell ...
Read more

Apache Ant - Binary Distributions

Binary Distributions Apache Ant™ Apache Ant is a Java library and command-line tool that help building software. Downloading Apache Ant
Read more

Ant - definition of ant by The Free Dictionary

ant (ănt) n. Any of numerous hymenopteran insects of the family Formicidae, characteristically having wings only in the males and fertile females and ...
Read more

Ant - Wikipedia, the free encyclopedia

Etymology. The word "ant" is derived from ante, emete of Middle English which are derived from ǣmette of Old English, and is related to the dialectal ...
Read more

ANT - Netzwerktechnik GmbH, Grünstadt

Die ANT Netzwerktechnik GmbH ist ein EDV-Dienstleister für kleine und mittelständische Unternehmen. Wir kümmern uns um Ihre IT, für bessere ...
Read more