IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Ant

Ant és una eina similar al make de C

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.

Paquets Debian

$ sudo apt-get install ant ant-doc ant-optional

Instal·lació

Consulteu:

Automatització_de_tasques_de_desenvolupament#Instal.C2.B7laci.C3.B3

Fitxer build

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>
OutputAnt.png

Targets (objectius) Ant

Els targets són petites tasques que fem durant la construcció d'una aplicació. Exemples:

  • Compilar
  • Netejar
  • Empaquetar l'aplicació
  • Crear un instal·lador
  • Publicar l'aplicació a un servidor d'Internet
  • etc...

Tasques ant

La potència d'Ant es troba en les tasques que ofereix per defecte. S'agrupen les tasques per tipus de tasca:

  • Archive Tasks
  • Audit/Coverage Tasks
  • Compile Tasks
  • Deployment Tasks
  • Documentation Tasks
  • EJB Tasks
  • Execution Tasks
  • File Tasks
  • Java2 Extensions Tasks
  • Logging Tasks
  • Mail Tasks
  • Miscellaneous Tasks
  • .NET Tasks
  • Pre-process Tasks
  • Property Tasks
  • Remote Tasks
  • SCM Tasks
  • Testing Tasks
  • Visual Age for Java Tasks


Consulteu el manual de Ant:

http://ant.apache.org/manual/tasksoverview.html

A més es poden programar noves tasques.

Propietats

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".


Execució d'Ant des de la línia de comandes

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


Llibreries

Subversion lib

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

Eclipse

Execució de tasques

Es poden executar des de la vista outline. El resultat és mostra per la consola (no news good news).

Preferències

Les trobareu a Window->Preferences->Ant

Tasques Opcionals

Consulteu el manual d'Ant:

file:///usr/share/doc/ant-doc/manual/install.html#librarydependencies

SSH

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).

Rejected key

Si us dona aquest error proveu amb el paràmetre:

trust="yes"

Mail

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

Scripts SQL des d'Ant

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>

Ant Android

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

Resolució de problemes. TroubleShooting

Instal·lant Ant a Eclipse

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.

Vegeu també

Enllaços externs