Az út, java, Linux és a nyílt forráskódú build rendszer használatának alapjait Apache Ant

Az alapok felhasználásával Apache Ant build rendszer

Amikor fejlesztett szoftver, ez állhat több eredeti alkatrészeket. Például fejlesztés végezhető többen szinte egymástól függetlenül, és a forráskód fájlokat, amelyekért felelősek, el lehet helyezni a különböző helyeken a fájlrendszer, és még a különböző gépeken. Amellett, hogy a forráskód fájlokat a projektben is fel lehet használni, és kész könyvtárakat külső fejlesztők (pl jar fájlok, dll, vagy úgy), konfigurációs fájlokat a különböző képek és ikonok, hangok és sok minden mást. Mindezek a dolgok is meg lehet változtatni a kidolgozása során más emberek.

Most képzeljük el, hogy mindezt csúnyaság kell gyűjteni csak egy tömörített archív fájlt, amelyet a felhasználó tudta letölteni a saját honlapján, raspakavat, és azonnal megkezdi a terméket. Lesz szükség, hogy összehozza az összes fájlt forráskódú Java és lefordítani, akkor megszabadulni tesztek, hogy megbizonyosodjon arról, hogy senki nem törte meg a projekt megkapta class-fájlok vannak csomagolva JAR (vagy több JAR'ov), melyek szeretne többet termelnek helyes nyilvánvaló tartalmazó a CLASSPATH, a fő osztály neve, verziószáma, stb majd összegyűlnek minden fájlt, mint a könyvtárak, képek és konfigurációk, a cucc az egészet a megfelelő könyvtárakat, generál dokumentációt, hogy hozzon létre ki ezt a fájlt, és töltse meg a webszerverre, és mindent, ami történt, hogy írjon egy napló és tárolja egy adatbázisban, amely tárolja információ a különböző szerelvények. Mindezt a kezét meglehetősen unalmas, és nem kell mentálisan egészséges ember csinálni.

összeszerelés rendszer, mint például az Apache Ant. Ebből jött létre annak érdekében, hogy automatizálják mindez néha meglehetősen komplex és rutin eljárás az összeszerelés a projekt. Sőt, abban az esetben az Apache Ant projekt nem feltétlenül kell a Java, és nem kell minden szoftver. Ez bármi lehet, bár ez elsősorban természetesen elsősorban a Java. Ebben a cikkben szeretnék egy nagyon egyszerű példát, hogy hogyan lehet könnyebbé teszik életüket használatával Apache Ant.

Minimális tudást, hogyan kell használni az Apache Ant

Ahhoz, hogy megtanulják, hogyan kell építeni a projekt, hangya tudomást szerez egy speciális XML-fájl, amelyben a fejlesztő leírja a szükséges lépéseket a szerelvény. Jellemzően ez a fájl neve build.xml. de lehet, hogy más. Csak amikor futtatja hangya keresi a build.xml abban a könyvtárban, ahonnan fut, és amikor egy egyedi nevet, akkor adja át hangya program paraméterként.

Ha a „Cél” és a „feladat”, hogy megzavarja te, gondolkodjon valami ilyesmit: „Annak érdekében, hogy minden kitűzött célt, el kell végezni bizonyos feladatokat.” Például, hogy a cél elérése érdekében „Compile projekt”, ki kell töltenie a feladatokat: „Hozzon létre egy könyvtárat a lefordított fájlok”, „Run a javac fordító” és a „Create a JAR”.

Amellett, hogy a célok, célkitűzések és a források olyan tulajdonságokkal. Az ingatlan lehet alkalmazni változók, konstansok és pontosabban. Az ingatlan egy nevet és egy értéket, mint egy húr. A tulajdonság értéke egyszer és minden olyan kísérletet, módosítsa ezt az értéket figyelmen kívül hagyja. Tulajdonságok tipikusan az attribútumok feladatokat. Beállítási értékek előfordulnak a build.xml fájlt vagy egy külső tulajdonságok-fájl, ami nagyon kényelmes, és lehetővé teszi, hogy módosítsa a szerelési folyamat megváltoztatása nélkül build.xml.

tulajdonságok állíthatók be item-tulajdonság értéke build.xml fájlt. Ez az elem lehet használni, mint egy gyökér eleme a projekt, és a belső target'ov:

Mint már említettük, a tulajdonságok határozzák meg a külső tulajdonságok fájlt. Felvételi tulajdonságok ebben a fájlban a következőképpen nézhet ki:
Az ingatlan rögzített fájl rendelkezésére bocsátották a build script, meg kell dugja be:

Ahhoz, hogy hozzáférjen az ingatlan értékét, a $. A következő kód megjeleníti az ingatlan értékét nevű myProp:

Példák a források lehetnek például elemek és a fájl url:

Úgy gondolom, hogy minden világos szavak nélkül.

Azonban sokkal kényelmesebb használni, mint az egyéni erőforrásokat és erőforrás-gyűjtemények - elem, hogy egy csoportját képezik, hasonló forrásokat. Például fájlkészlet elem jelentése fájlok leírható sokféleképpen.

Ebben a példában a fájlkészlet tartalmazni fogja az összes fájlt java az src könyvtárban és az alkönyvtárakban, kivéve fájlok nevét, amely a szó Test és nagybetűket.

Emellett az ismertetett kiviteli alakoknál a források, ott is az úgynevezett, útvonal-szerű szerkezet. Azt nem tudom, hogy tulajdonítani nekik, hogy a gyűjtemény a források, de a legjobb hely a számukra, nem érkezett, így a említése ezek a struktúrák itt. A név, azt hiszem, egyértelmű, hogy ezek olyan elemek, amelyek leírják olyan dolgok, mint az út (PATH). Ezek tartalmát lehet a különböző források és a gyűjtemény.

Figyeljük meg, hogy ebben a példában az azonos tulajdonságokat használjuk mylib.dir és extlib.dir, mely értékek utak en és vneshnimim könyvtárak, ill.

A leírt path-szerű szerkezetek, Ant automatikusan használja a megfelelő karaktert elválasztására alkalmazott szeparátor a források megfelelő operációs rendszer, amelyen fut.

Egy nagyon jó lehetőség az útvonal-szerű szerkezetek a lehetőségét, hogy egy szerkezet utal egy másik segítségével az id és refid attribútumok:

További információ a források itt olvasható.

Feladatok olyan cselekvések, amelyek lehet végrehajtani minden erőforrást, vagy anélkül való részvételüket. A leggyakoribb feladatok bemutatásával a táblázatban.

Gyakran alkalmazott feladatok


Az alábbiakban egy egyszerű példa segítségével feladatokat.

Összeállítása egy fájlt Java kód:

Néha, hogy néhány feladat csak annyi utalás helyes attribútumokat, de más, mint hogy a tag az lehet a probléma, és az al-elemek, amelyek például leírják a forrásokat, amelyekkel dolgozni a problémát. Egy érdekes alkalmazása különböző feladatok azt később a projekt épít egy egyszerű példát.

Teljes lista problémák itt bemutatott.

Tehát, mi jön a cél :) Annak érdekében, hogy építeni az egész szkriptet. A kitűzött célokat, és ezek eléréséhez a feladatok és a források felhasználását. Miért érdemes egy célra, ha az összes feladatot írhat közvetlenül a gyökér projektelem? És akkor, hogy a célok lehetővé teszik a szkriptet osztva az egyes kész logikus lépés, lehet függnek egymástól. Ie egy cél lehet címkézni a függő előnyüket, és elérni, szükséges, hogy először érte el a célt, amelyektől függ.

Ha a probléma gyökerében található projektelem, a hangya, áthaladva a build.xml fájlt szekvenciálisan hajtja végre azokat. Ezzel a megközelítéssel, akkor meg magadnak csak egy megvalósításában a szerelvény. Ha célra megadhat ant'u milyen célból kell elérni, és ő maga fogja ellenőrizni a függőségeket, és hajtsa végre az első gól, amelyen a fő.

A leírt példában a nagyon is valós célját, kivéve, hogy az elemek echo őket kellene hasznos feladatokat. A projekt elem az alapértelmezett beállítás attribútum egyenlő összeállításához, ami azt jelenti, hogy az alapértelmezett hangya végrehajtja fordításkor cél, ami függ a célra make.build.dirs, így a cél make.build.dirs, majd fordítsd először végre. Ha ant'u indítás jelzésére célra ker, ami függ mind a két cél, és összeállítja make.dist.dirs, az első lépés a fent leírt kerül végrehajtásra, akkor make.dist.dirs, és csak akkor dist:
Ezen túlmenően, az például a cél tiszta, hogy nem függ semmilyen más célra, valamint nincs célja, hogy függ a tiszta, így ez a cél csak akkor kifejezetten kérte ant'om: hangya tiszta.

Amellett, hogy a függőségeket a cél cél, van egy függés tulajdonságait a cél, pontosabban szempontjából ant'a, hogy ellenőrizzék a build folyamatot nevezzük ezt az állapotot. A lényege a feltétel az, hogy a cél lehet végrehajtani, vagy nem történik meg, attól függően, hogy az ingatlan értékét, vagy nincs telepítve.

Ebben a példában a cél build.full csak akkor hajtható végre, ha meghatározott sovystva teljes, különben nem kerül végrehajtásra build.simple. Egyáltalán nem számít, hogy milyen érték van beállítva a teljes vagyon, lehet, hogy igaz, és hamis, és minden más tétel, még üres.

Példa projekt testalkattípushoz Apache Ant

Most tekintsünk egy viszonylag egyszerű kis projekt fordítást.

Annak érdekében, hogy az építmények script alább igazán fog működni, és önálló projekt, írtam egy nagyon kis program kódot, amit nem vezet, mert ebben az esetben nincs szükség. A program három fájlból áll java: ValuesGenerator.java, Statistic.java és Main.java. A ValuesGenerator.java leírt módszer generálására véletlen adatot meghatározott Statistic.java technikák megtalálásához a minimális, átlagos és maximális értékei a tömb és a tárolt Main.java fő () módszer, amelyben a hívás ValuesGenerator osztályok módszerek és Statistic. Statisztikai osztály számításához használ az értékek az Apache Commons Math könyvtár és az összes munkaprogram van írva, hogy egy log fájlt log4j könyvtárban. Szintén a katalógusban a projekt egy kis readme.txt fájlt a program leírását.

A kihívás abban áll, hogy képes legyen automatikusan létrehoz egy zip fájlt a disztribúciós csomagot.

make.build.dirs és make.dist.dirs cél, akkor már nagyon világos. Nem csinál semmit okos, de csak hogy hozzon létre egy könyvtárat. Az egyetlen dolog, ami lehet jegyezni, ebben az esetben nem kell regisztrálni a két mkdir feladat, és lehet nem ugyanaz, mert mkdir létrehozhat egy lánc könyvtárak egyszerre.

Cél fordításkor tartalmaz feladatokat összeállításához szükséges a forráskód. Mielőtt hívja a fordító van egy alkotás elem utat, amely tartalmazni fogja az utat, hogy a könyvtár fájlokat, amelyek a programban. Files alkalmazásával határoztuk meg fájlkészlet eleme, és ezen felül az elérési út tartalmazhat más elemeket egy gyűjteménye források, például dirset tartalmazó könyvtár utak a lefordított Java-osztályok vagy más elem útját. mert létrehozott elem egy útvonal elkészítéséhez szükséges CLASSPATH, beállítja a megfelelő id attribútumot, hogy később is megtalálja ezt az utat. Miután létrehozta az utat, és a szöveg képviselete van írva vagyon keresztül PathConvert tagja és megjelenik. A cél fordításkor szerepel a projekt elem, mint a cél alapértelmezés szerint, így ha ant'u nem adja meg a cél végrehajtását, akkor végre pontosan azt. Ez a cél függ a teljesítmény az egyetlen cél make.build.dirs.

A cél javadoc generál javadoc dokumentációt. A részletesen nem írom le, csak hozta a demonstráció.

A cél a tiszta és egyszerű felháborító, és egyszerűen törli az eredmények a korábbi épít.

Kapcsolódó cikkek