Ant
Inhoudsopgave Hoofdstuk 1: Ant...................................................................4
1.1 Inleiding...............................................................................................................4 1.2 Ant installeren.....................................................................................................5 1.3 Ant gebruiken......................................................................................................7 1.3.1 Een project maken.......................................................................................7 1.3.2 Mijn eerste Ant-script.................................................................................10 1.3.2.1 Projects...............................................................................................10 1.3.2.2 Targets...............................................................................................11 1.3.2.3 Tasks..................................................................................................13 1.3.2.3.1 Tekst afdrukken..........................................................................13 1.3.2.3.2 Initialiseren..................................................................................14 1.3.2.3.3 Compileren..................................................................................14 1.3.2.3.4 Filesets, Patternsets en Selectors..............................................16 1.3.2.3.5 Code uitvoeren............................................................................18 1.3.2.3.6 Een JAR-bestand maken............................................................19 1.3.2.3.7 Documentatie genereren............................................................21 1.3.2.3.8 Bestanden kopiëren....................................................................22 1.3.2.3.9 Bestanden comprimeren.............................................................22 1.3.2.3.10 Mappen en bestanden wissen..................................................23 1.3.2.4 Properties...........................................................................................24 1.3.2.5 Paden.................................................................................................26 1.3.2.6 Datums...............................................................................................27 1.3.2.7 Optionele taken..................................................................................28 1.4 Integratie in NetBeans......................................................................................28 1.5 Integratie in Eclipse...........................................................................................32
Ant
Hoofdstuk 1: Ant 1.1 Inleiding Bij de ontwikkeling van grotere software-projecten moeten er vaak heel wat taken uitgevoerd worden om tot een werkende versie van de software te komen. We noemen er enkele op: • Het compileren van de broncode, eventueel van verschillende afzonderlijke modules. • Het genereren van afgeleide klassen; bijvoorbeeld in het geval van RMI, CORBA of WebServices dienen stubs en skeletons gegenereerd te worden op basis van bestaande klassen. • Het uitvoeren van testen om te zien of de code inderdaad doet wat ervan verwacht wordt. • Het genereren van een JAR-bestand dat alles bevat wat de klant nodig heeft. • Het genereren van de documentatie m.b.v. JAVADOC. • Het in werking stellen van de software (deploying) in het geval het servergebaseerde componenten zijn zoals JEE-toepassingen. • Het inchecken en/of uitchecken in een versiecontrolesysteem (CVS, SVN .. ). Veel van deze taken moeten tijdens de ontwikkeling herhaaldelijk uitgevoerd worden. Het manueel uitvoeren is echter omslachtig en een beduidend vertragende factor in het ontwikkelingsproces. Daarom dat er reeds lang allerlei manieren zijn om deze taken te automatiseren. De meest eenvoudige manier is het gebruik van batchbestanden (Windows) of shell-bestanden (UNIX/LINUX). Deze zijn echter te beperkt in hun mogelijkheden. Om meer uitgebreide functionaliteiten te hebben, werden de zogenaamde build tools ontwikkeld. Dit zijn speciale programma's die op basis van een script de verschillende taken kunnen uitvoeren. De meest bekende build tools zijn Make en NMake. Wie ooit met deze tools gewerkt heeft, weet dat de bijhorende scripts een bepaalde syntax hanteren die erg cryptisch is. Bovendien zijn deze tools erg platformafhankelijk; de scripts gebruiken allerlei commando's die specifiek zijn voor een bepaald platform en die dus niet zomaar overgedragen kunnen worden naar een ander platform. Niet geschikt dus voor Java-programmeerprojecten die juist de platformonafhankelijkheid hoog in hun vaandel dragen. Om tegemoet te komen aan de specifieke eisen van de Java-programmeertaal en om een betere build tool te maken die de gebreken van de bestaande tools aanvult, werd een nieuwe tool ontwikkeld met de naam Ant. Dit is de afkorting van Another Neat Tool. Maar de afkorting is tevens het Engels voor mier. Deze naam is wel heel toepasselijk want deze tool is de werkmier bij het uitvoeren van allerlei repetitieve taken. Ant is een build tool die zelf geschreven is in Java en waarbij iedere taak uitgevoerd wordt door een specifieke Java-klasse. Dit maakt het gebruik van Ant platformonafhankelijk. Bovendien zijn de scripts in XML-formaat wat de leesbaarheid en gestructureerdheid ten goede komt. Ant is een project van de Apache Group en kan vrij afgehaald worden op volgende site: http://ant.apache.org
Copyright 2012 Noël Vaes
-4-
www.noelvaes.eu
Ant
In de Java-wereld is Ant zowat de defacto standaard geworden als build tool. Code editors en IDE's voorzien daarom ook een integratie van Ant in hun programmeeromgeving.
1.2 Ant installeren Ant is een Open Source project van Apache. Men kan gebruik maken van de broncode en deze zelf compileren of men kan een gecompileerde versie downloaden vanaf de site http://ant.apache.org. Ant zelf is geschreven in Java en veronderstelt dus de aanwezigheid van een JRE (Java Runtime Environment) . Om alle mogelijkheden van Ant te benutten is evenwel een JDK (Java Development Kit) nodig. Tevens wordt een XML-parser vereist maar deze wordt standaard meegeleverd bij de laatste versies van de JDK. Na het downloaden kan de gecompileerde versie van Ant uitgepakt worden in een of andere te kiezen folder, bijvoorbeeld C:\ We krijgen dan volgende mapstructuur: C:\apache-ant-1.8.x +--- bin // Bevat de scripts om ant te starten | +--- lib // Bevat de nodige JARs | +--- docs // Bevat de documentatie | +--- ant2 // Beschrijving van de Ant systeemvereisten | | | +--- images // Logos voor de HTML documentatie | | | +--- manual // Ant uitgebreide documentatie | +--- etc // Configuratiebestanden
Verder moeten volgende omgevingsvariabelen ingesteld worden: JAVA_HOME: Verwijst naar het pad waar de JDK geïnstalleerd is. ANT_HOME : Verwijst naar het pad waar Ant geïnstalleerd is: in dit geval C:\apache-ant-1.8.x Tevens moet de folder /bin opgenomen worden in de PATH variabele: JAVA_HOME=C:\Program Files\Java\jdk1.6.0_x ANT_HOME=C:\apache-ant-1.8.x PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;....
Opdracht 1: Ant installeren
In deze opdracht gaan we Ant downloaden en installeren op ons systeem. Download de laatste binaire versie van Ant op http://ant.apache.org Pak het bestand uit in volgende folder C:\ Ga na of de omgevingsvariabele JAVA_HOME correct is ingesteld en voeg hem desnoods toe. Copyright 2012 Noël Vaes
-5-
www.noelvaes.eu
Ant
Voeg de omgevingsvariabele ANT_HOME toe: ANT_HOME=C:\apache-ant-1.8.x
Voeg de folder \bin toe aan de PATH variabele (systeemvariabele): PATH= ....;%ANT_HOME%\bin Zorg er best voor dat %JAVA_HOME% en %ANT_HOME% aan het begin staan van de systeemvariabele Path. Dit voorkomt problemen met eventuele versies die zich bevinden in de standaard mappen van Windows.
Open een console-venster en voer het volgende commando uit: ant -version
Open de documentatie via het bestand docs/index.html en maak een Copyright 2012 Noël Vaes
-6-
www.noelvaes.eu
Ant
snelkoppeling naar deze documentatie.
1.3 Ant gebruiken Na de installatie kan Ant gebruikt worden door het commando ant uit te voeren vanuit een console. Ant heeft echter een script nodig en bovendien moeten we een concreet programmeerproject hebben waar we Ant op kunnen loslaten.
1.3.1 Een project maken Om de bestanden in een project enigszins te ordenen, wordt vaak gebruik gemaakt van volgende mapstructuur: project +--| +--| +--| +--| | | +--| +---
src conf lib build | +--- classes docs dist
submap src
Omschrijving
conf
In deze folder komen de overige configuratiebestanden die nodig zijn voor het project: property bestanden enz...
lib
In deze folder zitten alle externe bibliotheken (JAR-bestanden) die we nodig hebben voor dit project.
build
In deze folder komen de gegenereerde JAR-bestanden terecht.
build/classes
In deze folder komen na compilatie de klasse-bestanden terecht.
docs
In deze folder komt de documentatie die met JAVADOC gegenereerd wordt.
dist
In deze folder komt het uiteindelijke product dat naar de klant gestuurd wordt.
In deze folder plaatsen we de Java broncode-bestanden.
Opdracht 2: Een project maken
In deze opdracht gaan we een eenvoudig project maken: natuurlijk weer gebaseerd op de moeder van alle programmeerprojecten "Hello World". Tevens gaan we de verschillende stappen doorlopen om dit project af te leveren aan de klant: - tijdelijke mappen creëren Copyright 2012 Noël Vaes
-7-
www.noelvaes.eu