Definovaný proces je jedným z najpotrebnejších, ale často najmenej používaných nástrojov pri vývoji softvéru. Je to od prírody hlavná úloha, ktorá sprevádza vývojové úsilie. Definovaný proces vytvárania zaručuje, že softvér vo vašom vývojovom projekte je zostavený presne rovnakým spôsobom pri každom spustení zostavenia. Keď sa proces zostavovania stáva zložitejším - napríklad pri zostavovaní EJB alebo ďalších úlohách -, je nevyhnutnejšie dosiahnuť takúto štandardizáciu. Mali by ste čo najviac ustanoviť, zdokumentovať a automatizovať presnú sériu krokov.
Prečo potrebujem definovaný proces zostavovania?
Definovaný proces vytvárania je podstatnou súčasťou každého vývojového cyklu, pretože pomáha prekonávať priepasti medzi vývojovým, integračným, testovacím a produkčným prostredím. Samotný proces zostavenia urýchli migráciu softvéru z jedného prostredia do druhého. Odstraňuje tiež veľa problémov týkajúcich sa kompilácie, cesty k triede alebo vlastností, ktoré mnoho projektov stoja čas a peniaze.
Čo je to mravenec?
Ant je skriptovací nástroj nezávislý na platforme, ktorý vám umožňuje konštruovať svoje zostavovacie skripty rovnakým spôsobom ako nástroj „make“ v C alebo C ++. V aplikácii Ant môžete použiť veľké množstvo vstavaných úloh bez akýchkoľvek úprav. Niektoré z najdôležitejších úloh sú uvedené v nasledujúcej tabuľke, ale sú vysvetlené podrobnejšie v nasledujúcom príklade.
Tu je niekoľko užitočných príkazov, ktoré sú súčasťou distribúcie Ant.
Velenie | Popis |
---|---|
Ant | Používa sa na vykonanie iného procesu mravca z aktuálneho procesu. |
Copydir | Používa sa na kopírovanie celého adresára. |
Copyfile | Používa sa na kopírovanie jedného súboru. |
CVS | Spracováva balíky / moduly načítané z úložiska CVS. |
Odstrániť | Vymaže jeden súbor alebo všetky súbory v určenom adresári a jeho podadresároch. |
Deltree | Vymaže adresár so všetkými jeho súbormi a podadresármi. |
Exec | Vykoná systémový príkaz. Keď je zadaný atribút os, potom sa príkaz vykoná, len keď je Ant spustený v jednom zo zadaných operačných systémov. |
Získajte | Načíta súbor z adresy URL. |
Jar | Zavára súbor súborov. |
Java | Vykoná triedu Java v rámci bežiaceho (Ant) VM alebo rozdeľuje iný VM, ak je zadaný. |
Javac | Kompiluje zdrojový strom v rámci bežiaceho (Ant) VM. |
Javadoc / Javadoc2 | Generuje dokumentáciu kódu pomocou nástroja javadoc. |
Mkdir | Vytvorí adresár. |
Nehnuteľnosť | Nastaví vlastnosť (podľa názvu a hodnoty) alebo množiny vlastností (zo súboru alebo zdroja) v projekte. |
Rmic | Spustí kompilátor rmic pre určitú triedu. |
Tstamp | Nastaví vlastnosti DSTAMP, TSTAMP a TODAY v aktuálnom projekte. |
Štýl | Spracuje sadu dokumentov prostredníctvom XSLT. |
Aj keď sú k dispozícii ďalšie nástroje na vytváranie softvérových zostáv, program Ant sa ľahko používa a dá sa zvládnuť za pár minút. Okrem toho vám program Ant umožňuje vytvárať rozšírené funkcie rozšírením niektorých svojich tried. Toto rozšírenie ukážem v nasledujúcom príklade.
Čo potrebujem na použitie Ant?
Ak chcete spustiť program Ant, musíte nainštalovať tri komponenty do svojho počítača: JDK, analyzátor XML a Ant (odkazy nájdete v časti Zdroje).
V mnohých prípadoch je analyzátor XML súčasťou súborov lib distribuovaných s bežcom servletu alebo webovým serverom. Ak nie, postačuje bezplatný analyzátor XML zo stránky java.sun.com.
Inštalácia Ant spočíva v stiahnutí súborov, pridaní knižníc tried do triedy classpath a pridaní binárnych súborov Ant do cesty.
Príklad scenára
Tento príkladový scenár by vám mal pomôcť ukázať vám hodnotu Mravca a poskytnúť prehľad o jeho výhodách a o tom, ako ich môžete použiť.
Pretože veľká časť súčasného vývoja Java je zameraná na Javu na strane servera, vybral som si napríklad aplikáciu na strane servera. Vývojári pracujúci na serverových aplikáciách Java sa zvyčajne zaujímajú o kompiláciu servletov, nasadenie súborov JSP a nasadenie súborov HTML, konfiguračných súborov alebo obrázkov.
Spoločná schéma na uskutočnenie tohto zostavenia by zahŕňala vývoj malých skriptov v jazykoch špecifických pre platformu na základe operačného systému servera. Napríklad vývojár pracujúci na počítači NT by mohol vytvoriť dávkový súbor, ktorý vykoná úlohy kompilácie a potom spustí nasadenie. Ak by však produkčné prostredie malo Unix alebo Linux, vývojár by musel skript prepísať a zabezpečiť tak synchronizáciu skriptov.
Dobre, ukáž mi, ako to funguje
Dúfam teda, že som vás presvedčil o potrebe používať Ant a ukázal som, aká jednoduchá je inštalácia. Teraz vám ukážem, ako jednoducho sa Ant používa, tým, že prejdem k príkladu, ktorý vykonáva jednoduchú kompiláciu a nasadenie.
Jednoduchý proces vytvárania pomocou Ant (simple.xml)
Vo vyššie uvedenom príklade je toho veľa potrebné vysvetliť. Najprv by ste mali pochopiť štruktúru súboru simple.xml. Je to dobre naformátovaný súbor XML obsahujúci entitu projektu, ktorý sa skladá z niekoľkých cieľových entít.
Prvý riadok obsahuje informácie o celkovom projekte, ktorý sa má postaviť.
Najdôležitejšie prvky projektovej línie sú: predvolené
a basedir
.
The predvolené
atribút odkazuje na predvolený cieľ, ktorý sa má vykonať. Pretože Ant je nástroj na zostavenie príkazového riadku, je možné vykonať iba podmnožinu cieľových krokov v súbore Ant. Napríklad by som mohol vykonať nasledujúci príkaz:
% ant -buildfile simple.xml init
Tým sa vykoná mravec
a spustite súbor simple.xml, kým init
cieľ je dosiahnutý. V tomto príklade je teda predvolená hodnota nasadiť
. Proces Ant vyvolaný v nasledujúcom riadku bude prebiehať cez simple.xml
súbor do nasadiť
príkaz je dosiahnutý:
% ant -buildfile simple.xml
The basedir
atribút je celkom zrejmý, pretože ide o základný adresár, z ktorého sa získavajú relatívne referencie obsiahnuté v súbore zostavenia. Každý projekt môže mať iba jeden basedir
atribút, takže si môžete zvoliť, či chcete zahrnúť plne kvalifikované umiestnenie adresára, alebo rozdeliť veľký súbor projektu na menšie súbory projektu s rôznymi basedir
atribúty.
Ďalšou zaujímavou líniou je cieľová línia. Tu sú zobrazené dve rôzne verzie:
The cieľ
prvok obsahuje štyri atribúty: názov
, ak
, pokiaľ
a záleží
. Mravenec vyžaduje názov
atribút, ale ďalšie tri atribúty sú voliteľné.
Použitím záleží
, môžete zostaviť úlohy Ant tak, aby sa závislá úloha nespustila, kým sa nedokončí úloha, na ktorej závisí. Vo vyššie uvedenom príklade sa čistá úloha nespustí, kým init
úloha dokončená. The záleží
atribút môže obsahovať aj zoznam hodnôt oddelených čiarkami, ktoré označujú niekoľko úloh, od ktorých závisí úloha v diskusii.
The ak
a pokiaľ
príkazy umožňujú určiť príkazy, ktoré sa majú vykonať ak je nastavená určitá vlastnosť resp pokiaľ táto vlastnosť je nastavená. The ak
sa vykoná, keď je nastavená hodnota vlastnosti, a pokiaľ
sa vykoná, ak nie je nastavená hodnota. Môžete použiť k dispozícii
príkazom nastavíte tieto vlastnosti, ako je znázornené v nasledujúcom príklade, alebo ich môžete nastaviť pomocou príkazového riadku.
The init
cieľ z jednoduchého príkladu obsahuje štyri riadky nehnuteľnosť
príkazy zobrazené tu:
Títo nehnuteľnosť
riadky umožňujú určiť bežne používané adresáre alebo súbory. Vlastnosť je dvojica jednoduchých názvov a hodnôt, ktorá vám umožňuje odkazovať na adresár alebo súbor ako na logickú entitu, a nie ako na fyzickú.
Ak ste sa chceli odvolať na zdrojDir
premennej neskôr v súbore Ant, môžete jednoducho použiť nasledujúcu syntaxi na upozornenie Ant na získanie hodnoty pre túto značku: $ {sourceDir}
.
Dva ďalšie príkazy prítomné vo vyššie uvedenom zostavovacom súbore sú:
Tieto príkazy sa používajú na zabezpečenie toho, že v priečinku výstupDir
(alebo triedy
adresár, keď je dereferencovaný, ako je uvedené vyššie). Prvý príkaz odstráni celý strom obsiahnutý pod výstupDir
. Druhý príkaz vytvorí adresár znova.
Posledný riadok, ktorý má pre vývojára zásadný význam, je nasledujúci riadok kompilácie:
The javac
príkaz vyžaduje zdrojový adresár (vstupné umiestnenie súborov .java) a cieľový adresár (výstupné umiestnenie súboru .classes). Je dôležité si uvedomiť, že všetky adresáre musia existovať pred spustením mravec
príkaz alebo byť vytvorený pomocou mkdir
príkaz. Ant nevytvára adresáre založené na intuícii, takže musíte vytvoriť výstupDir
pomocou mkdir
príkaz pred krokom kompilácie vyššie.
Po zostaviť
úloha bola splnená, nasadiť
úloha vykoná operáciu kopírovania na presun všetkých súborov JSP zo zdrojového adresára do adresára nasadenia. Použitím copydir
príkaz skopírujete celý adresár JSP z jedného umiestnenia do druhého. Použil som copyfile
príkaz na kopírovanie jedného súboru vlastností ako súčasť zostavy.
Aj keď vysvetlenie príkladu trvalo niekoľko riadkov, malo by byť zrejmé, že Ant je ľahko použiteľný nástroj. Ak použijete tento zostavovací súbor ako východiskový bod, mali by ste byť schopní začleniť Ant do svojho vývojového úsilia. The mravec
príkazy zobrazené vo vyššie uvedenom príklade majú ďalšiu funkcionalitu, o niektorých z nich sa budeme rozprávať v tomto článku, zvyšok je spolu s odkazmi na dokumentáciu ponechaný na vás.
Dôležité úlohy
Je na vás, aby ste si prečítali vstavané úlohy zahrnuté v distribúcii Ant. Informácie o jednotlivých príkazoch nájdete v používateľskej príručke v časti Zdroje. Ako príklady ďalších volieb, ktoré má správca zostavenia k dispozícii bez akejkoľvek úpravy, som vybral dva bežne používané príkazy.
Kompilačný kód (vrátane EJB)
V jednoduchom príklade diskutovanom vyššie ste videli jednoduchú formu súboru javac
príkaz. Ak to teraz preskúmate podrobnejšie, uvidíte, že môžete určiť príznaky kompilácie, ako napríklad zastaranie, ladenie alebo optimalizácia, ako aj súbory, ktoré budú alebo nebudú v kompilácii zahrnuté.
Môžete použiť zahrnúť / vylúčiť
subjekty vo vnútri javac
úloha zahrnúť / vylúčiť súbory zodpovedajúce vzoru v názov
atribút z kompilácie. Z vyššie uvedeného príkladu chcete zahrnúť súbory obsiahnuté v ľubovoľnom adresári s príponou .java, ale súčasne vylúčiť súbory s názvom Script.java, pokiaľ vlastníctvo bsf.prítomný
je nastavený na hodnotu true.
Nastavili ste bsf.prítomný
vlastnosť pomocou nasledujúcej úlohy, ktorá hľadá v triede cestu zadaný názov triedy a množiny bsf.prítomný
podľa výsledkov vyhľadávania:
The javac
príkaz nebude obsahovať súbory zvané version.txt z kompilácie na základe vyššie uvedeného príkazu vylúčiť.
Generuje sa javadoc
Ďalšou úlohou, ktorú Ant môže pomôcť automatizovať, je generovanie javadocu. Na vygenerovanie javadocu môžete použiť nasledujúci príkaz:
Balíky určujú celkové balíčky, ktoré bude obsahovať javadoc. The sourcepath
atribút smeruje k umiestneniu zdrojových súborov. The javadoc
Príkaz tiež poskytuje atribúty, ktoré umožňujú určiť názov okna a dokumentu. Do dolnej časti každej stránky javadoc môžete tiež pridať oznámenie o autorských právach pomocou dole
atribút.
Môže Ant robiť XYZ?
V tomto okamihu ste videli niekoľko možných úloh v procese zostavovania, ktoré môže Ant automatizovať. Tieto úlohy sú zahrnuté v krabici v Ant. Možno budete chcieť prispôsobiť Anta, aby vám pomohol vykonať niektoré náročnejšie úlohy, ako je budovanie EJB a vykonávanie vzdialenej správy konfigurácie. Niektorí z vás môžu chcieť zvýšiť možnosti prehľadávania Ant alebo vytvoriť používateľské rozhranie, ktoré môže spustiť proces Ant.
Jednoduchá odpoveď na otázku „Môže Ant robiť XYZ?“ je „Áno, ale možno si to budete musieť prispôsobiť.“
Predĺženie Ant
V tejto chvíli je zaujímavé diskutovať o dvoch rozšíreniach Ant. Jedná sa o zvýšené reportovanie a schopnosť vzdialenej distribúcie kódu pomocou Ant.