100 likes | 257 Views
Apache Ant. 2. gyakorlat Alkalmazásfejlesztés 2013-2014/2 Gyakorlat Zalatnai Csongor. Mi ez?. Fordítás és csomagolás automatizálása ( build tool ) Hasonló: make parancs
E N D
ApacheAnt 2. gyakorlatAlkalmazásfejlesztés 2013-2014/2 GyakorlatZalatnai Csongor
Mi ez? • Fordítás és csomagolás automatizálása (buildtool) • Hasonló: make parancs • Java nyelven megvalósított, XML alapúXML: Hierarchikus leíró nyelv (elemek: <project>, attribútumok: elemen belül plname="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: <project name="01-ant-eclipse" default="dist" basedir=".">
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: <target name="kiscica">…</target>
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) • <target name="A"/> • <target name="B" depends="A"/> • <target name="C" depends="B"/> • <target name="D" depends="C,B,A"/> • 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 Taskegy végrehajtandó feladatot jelöl • Target elemen belül szerepelnie kell legalább egynek. • Szintaxisa: <TaskNév attr1=„bla” attr2=„blabla”, …> • Példa: <OmNomNomwho=„Pusheen” what=„cookies”/> • 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: • <propertyname=„catname” value=„Pusheen”/> • <propertyname=„foodname” value=„Cookie”/> • Hivatkozás rá más Taskon belül • <OmNomNomwho=„${catname}” what=„${foodname}”/>
Ö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 Targetetbuildeltünk? Milyen taskok futottak le? Milyen más Targetek vannak még?