Ant és una eina usada en programació per a la automatització de tasques mecàniques i repetitives, normalment durant la fase de compilació i construcció (build). És similar al make de C però és escrit en Java.
La diferencia més notable entre Ant i make, és que Ant utilitza un fitxer en format XML per descriure el procés de construcció (build) i les seves dependències. Mentre que el make té el seu propi format Makefile. Per defecte el fitxer XML és anomenat build.xml.
Ant és un projecte de codi obert de l'Apache Software Foundation, distribuït sota la llicència Apache Software License.
Ant és una eina que trobareu inclosa en entorns de desenvolupament integral com Netbeans o Eclipse. Aquests IDE utilitzant ant per automatitzar el procés de construcció d'un projecte.
$ sudo apt-get install ant ant-doc ant-optional
Consulteu:
Automatització_de_tasques_de_desenvolupament#Instal.C2.B7laci.C3.B3
El fitxer build.xml conté les tasques ant que es duen a terme durant el cicle de desenvolupament.
build.xml és a ant el que Makefile és a make
Ant està inspirat en make i també funciona per targets. El fitxer on es defineixen les tasques és build.xml i està en format xml.
Si un fitxer makefile tenia una forma com la següent:
all: hello hello: main.o factorial.o hello.o g++ main.o factorial.o hello.o -o hello main.o: main.cpp g++ -c main.cpp factorial.o: factorial.cpp g++ -c factorial.cpp hello.o: hello.cpp g++ -c hello.cpp clean: rm -rf *o hello
Un fitxer build xml el format és:
A l'executar un projecte amb Netbeans o altres IDE, veureu una finestra (normalment output) on es van executant les tasques d'ant:
<?xml version="1.0" encoding="UTF-8"?> <project name="GestioAules-impl" default="jar" basedir=".."> <target name="pre-load-properties"> ... </target> <target name="jar"> ... </target> <target name="unaltreTarget"> ... </target> ... </project>
Els targets són petites tasques que fem durant la construcció d'una aplicació. Exemples:
La potència d'Ant es troba en les tasques que ofereix per defecte. S'agrupen les tasques per tipus de tasca:
Consulteu el manual de Ant:
http://ant.apache.org/manual/tasksoverview.html
A més es poden programar noves tasques.
La tasca d'ant property permet definir constants. No són variables, són valors immutables, és a dir no es poden modificar.
Exemples:
Establir la propietat foo.dist amb el valor dist:
<property name="foo.dist" value="dist"/>
Definir un fitxer on trobar les propietats:
<property file="foo.properties"/>
el format del fitxer és:
build.compiler=jikes deploy.server=lucky deploy.port=8080 propietat=valor ...
També es poden llegir d'Internet:
<property url="http://www.mysite.com/bla/props/foo.properties"/>
Per fer referència a una propietat:
${nom_propietat}
Per exemple:
<property file="${user.home}/.ant-global.properties"/>
Hi han propietats predefinides. Per exemple es pot accedir a les propietats de Java, com: ${os.name}. A més ant defineix:
basedir the absolute path of the project's basedir (as set with the basedir attribute of <project>). ant.file the absolute path of the buildfile. ant.version the version of Ant ant.project.name the name of the project that is currently executing; it is set in the name attribute of <project>. ant.java.version the JVM version Ant detected; currently it can hold the values "1.2", "1.3", "1.4" and "1.5".
Ant es pot instal·lar amb:
$ sudo apt-get install ant
Aleshores només cal que us dirigiu a la carpeta on teniu un fitxer build.xml amb les tasques definides i executeu ant:
$ cd /home/sergi/NetBeansProjects/GestioAules $ ant run $ ant build
Podeu executar qualsevol altre tasca:
$ ant run
Per disposar de tasques relaciona amb subversion cal instal·lar la llibreria subversion libs o:
svnant necessita javahl.jar:
$ locate javahl /home/sergi/eclipses/eclipse_php/configuration/org.eclipse.osgi/bundles/362/1/.cp/lib /svnjavahl.jar /home/sergi/eclipses/eclipse_php/plugins/org.tigris.subversion.javahl.win32_1.0.6.jar
També es pot fer per "línia d'ordres":
<exec executable="svn"> <arg line="co ${svn.projecturl} ${build.temp} -r ${svn.revision} --username ${svn.username} --password ${svn.password}"/> </exec>
Segons la versió de subversion i Eclipse cal utilitzar un svnAnt o un altre. Les passes per a Galileo són:
Primer obtenir:
$ wget http://subclipse.tigris.org/files/documents/906/46267/svnant-1.3.0.zip
Es poden executar des de la vista outline. El resultat és mostra per la consola (no news good news).
Les trobareu a Window->Preferences->Ant
Consulteu el manual d'Ant:
file:///usr/share/doc/ant-doc/manual/install.html#librarydependencies
Per utilitzar SSH o qualsevol de les ordres relacionades com scp
Es requereix:
jsch.jar 0.1.29 o posterior
El podeu trobar a
http://www.jcraft.com/jsch/index.html
URLS
$ wget http://sourceforge.net/projects/jsch/files/jsch/0.1.44/jsch-0.1.44.zip/download $ wget http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.44/jsch-0.1.44.jar/download
A la web (http://www.jcraft.com/jsch/ abaix a la pàgina, secció Donwload ) podeu veure els md5sums:
# jsch-0.1.44.zip(283,903 bytes) md5sum: 9954d151f16629ed5cf02e56c031954e jsch-0.1.44.zip # jsch-0.1.44.jar(185,723 bytes) md5sum: 182a2b7a3ebec420abddf65b52bfd4f0 jsch-0.1.44.jar
Al zip hi ha tota la informació, amb exemples, etc. El .jar és el que cal incloure al path de ant per tal de poder-lo utilitzar. Amb eclipse podeu fer-ho fàcilment i per línia d'ordres encara més:
$ sudo cp jsch-0.1.44.jar /usr/share/ant/lib
El fitxer important és el jsch-0.1.42.jar que cal afegir al buildpath d'ant (Preferències d'Eclipse a l'apartat d'Ant).
Si us dona aquest error proveu amb el paràmetre:
trust="yes"
Cal obtenir els jar necessaris a:
*http://java.sun.com/products/javamail/
El fitxer a obtenir en data --acacha 16:35, 26 gen 2010 (UTC) era:
javamail-1.4.3.zip
El fitxer important és el mail.jar que cal afegir al buildpath d'ant (Preferències d'Eclipse a l'apartat d'Ant).
NOTA: No us puc proporcionar una URL directa ja que el gestor de descarregues de Sun no ho permet
NOTA: tingueu en compte que no és el mateix ant l'integrat a Eclipse que el del sistema i que per tant, tampoc comparteixen la carpeta de llibreries, és a dir, si afegiu suport per al correu a ant per línia de comandes no funcionara amb Eclipse ant i viceversa
Cal descarregar:
$ wget http://dev.mysql.com/downloads/mirror.php?id=13597
Descomprimir-lo i guardar-lo a algun lloc
Podeu buscar la última versió a:
http://dev.mysql.com/downloads/connector/j/3.1.html#downloads
Guardar les instruccions SQL:
prova.sql
a build.xml:
<project name="myproject" default="db.build"> <target name="db.build"> <sql driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8" userid="username" password="password" > <classpath> <pathelement path="/path_al_fitxer/mysql-connector-java-3.1.12-bin.jar"/> </classpath> <transaction src="${sql.path}/db_structure.sql"/> </sql> </target> </project>
Vegeu Ant Android i Building & Running Android
NOTA: A finals de 2014 Google crea la primera versió estable d'Android Studio i utilitza Gradle com eïna de suport a la construcció del projecte
Si tenim un eclipse que no sigui el de Java, no tindrem Ant. Podem instal·lar ant instal·lant:
Eclipse Java Development Tools
També conegut com JDT.
Des del menú de plugins d'Eclipse.