Programovanie

Automatizujte svoj proces vytvárania pomocou Java a Ant

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.

VeleniePopis
AntPoužíva sa na vykonanie iného procesu mravca z aktuálneho procesu.
CopydirPoužíva sa na kopírovanie celého adresára.
CopyfilePoužíva sa na kopírovanie jedného súboru.
CVSSpracová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.
DeltreeVymaže adresár so všetkými jeho súbormi a podadresármi.
ExecVykoná 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ískajteNačíta súbor z adresy URL.
JarZavára súbor súborov.
JavaVykoná triedu Java v rámci bežiaceho (Ant) VM alebo rozdeľuje iný VM, ak je zadaný.
JavacKompiluje zdrojový strom v rámci bežiaceho (Ant) VM.
Javadoc / Javadoc2Generuje dokumentáciu kódu pomocou nástroja javadoc.
MkdirVytvorí adresár.
NehnuteľnosťNastaví vlastnosť (podľa názvu a hodnoty) alebo množiny vlastností (zo súboru alebo zdroja) v projekte.
RmicSpustí kompilátor rmic pre určitú triedu.
TstampNastaví vlastnosti DSTAMP, TSTAMP a TODAY v aktuálnom projekte.
ŠtýlSpracuje 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ýstupDirpomocou 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.

Vylepšenia prehľadov

$config[zx-auto] not found$config[zx-overlay] not found