Apache Ant 2. gyakorlat Alkalmazásfejlesztés /2 Gyakorlat Zalatnai Csongor
Mi ez? Fordítás és csomagolás automatizálása (build tool) Hasonló: make parancs Java nyelven megvalósított, XML alapú XML: Hierarchikus leíró nyelv (elemek:, attribútumok: elemen belül pl name="01-ant- eclipse") Platformfüggetlen Projektek, targetek, taszkok következő dián
Build.xml, Projekt Ant: build.xml tartalmazza a buildhez szükséges utasításokat Minden build file tartalmaz egy projectet A project elemnek van három tulajdonsága name: a project neve, ezzel hivatkozhatunk rá default: Az alapértelmezett futó target basedir: a relatív útvonalak feloldásához használt elérési út (ez jelenti a relatív útvonalakban a. –ot) Példa:
Targetek Target: leírja, hogy egy adott állapot eléréséhez (lefordultak az osztályok, be lett csomagolva a jar, ki lett takarítva, …) milyen feladatokat kell végrehajtanunk (Taskok, következő dián) Egy project elemen belül egy vagy több target elemnek kell lennie. Egyetlen kötelező eleme van, a "name" attribútum, ezzel tudunk hivatkozni rá a későbbiekben. Példa: …
Targetek folytatása Egy target több targettől tud függni, ezt a depends attribútuma a target elemnek határozza meg a következők szerint: (több függőséget vesszővel kell elválasztani) Ebben az esetben ha a D targetet akarjuk végrehajtani, a végrehajtási sorrend sorrend: A --> B --> C --> D Miért? (Gondoljuk át órán)
Task Egy Task egy végrehajtandó feladatot jelöl Target elemen belül szerepelnie kell legalább egynek. Szintaxisa: Példa: Egy targeten belül a Taskok végrehajtása szekvenciális. Sok beépített Task van, de sajátot is lehet írni. Néhány beépített Task: Mkdir Javac Jar Copy A beépített Taskokat és azoknak a dokumentációit
Properties (változók) Kulcs-érték (paraméterek) tárolása a project elemen belül Speciális Task! Használat: paraméterek definiálása amiket más Taskokon belül tudunk újra felhasználni. Példa: Hivatkozás rá más Taskon belül
Összefoglalva Build rendszer, vezérelhető vele a fordítás / csomagolás / kiadás minden része. XML Alapú Egy Project, azon belül több Target, Targeteken belül Taskok Target: egy adott állapot eléréshez szükséges műveletek (Taskok) + függőségek (depends attribútum) Task: Egy végrehajtandó feladat Lehet paramétereket is definiálni, Property nevű speciális Taskkal.
Nézzük meg együtt a kiadott példát /pub/Alkalmazasfejlesztes/… felmásolása a C:\alkfejl\01 mappába env.bat-ban JAVA_HOME átírása Parancssor nyitása (Windows + R gomb, cmd beír) cd C:\alkfejl\01 (enter) env.bat (enter) cd feladat\01-ant-eclipse (enter) ant (enter) Mi történt? Mi indult el? Mit csinált? Milyen file-t dolgozott fel? Milyen Targetet buildeltünk? Milyen taskok futottak le? Milyen más Targetek vannak még?