Definovaný proces je jedním z nejpotřebnějších, ale často nejméně používaných nástrojů při vývoji softwaru. Je to od přírody režijní úkol, který doprovází vývojové úsilí. Definovaný proces sestavení zajišťuje, že software ve vašem vývojovém projektu je vytvářen přesně stejným způsobem pokaždé, když je sestavení provedeno. Vzhledem k tomu, že proces sestavování se stává složitějším - například s sestavením EJB nebo dalšími úkoly - je stále důležitější dosáhnout takové standardizace. Měli byste co nejvíce vytvořit, zdokumentovat a automatizovat přesnou sérii kroků.
Proč potřebuji definovaný proces sestavení?
Definovaný proces sestavení je nezbytnou součástí každého vývojového cyklu, protože pomáhá překlenout mezeru mezi vývojovým, integračním, testovacím a produkčním prostředím. Samotný proces sestavení urychlí migraci softwaru z jednoho prostředí do druhého. Rovněž odstraňuje mnoho problémů souvisejících s kompilací, cestou ke třídě nebo vlastnostmi, které mnoho projektů stojí čas a peníze.
Co je Ant?
Ant je skriptovací nástroj nezávislý na platformě, který vám umožňuje konstruovat vaše sestavovací skripty stejným způsobem jako nástroj „make“ v C nebo C ++. V Ant můžete použít velké množství integrovaných úkolů bez jakéhokoli přizpůsobení. Některé z nejdůležitějších úkolů jsou uvedeny v následující tabulce, ale jsou vysvětleny podrobněji v následujícím příkladu.
Zde je několik užitečných příkazů, které jsou součástí distribuce Ant.
Příkaz | Popis |
---|---|
Mravenec | Používá se k provedení dalšího mravenčího procesu z aktuálního. |
Copydir | Slouží ke kopírování celého adresáře. |
Zkopírovat soubor | Slouží ke kopírování jednoho souboru. |
Životopisy | Zpracovává balíčky / moduly načtené z úložiště CVS. |
Vymazat | Odstraní buď jeden soubor, nebo všechny soubory v zadaném adresáři a jeho podadresářích. |
Deltree | Odstraní adresář se všemi jeho soubory a podadresáři. |
Exec | Provede systémový příkaz. Když je zadán atribut os, pak je příkaz proveden pouze tehdy, když je Ant spuštěn na jednom ze specifikovaných operačních systémů. |
Dostat | Získá soubor z adresy URL. |
Sklenice | Sklenice sady souborů. |
Jáva | Spustí třídu Java v rámci spuštěného (Ant) virtuálního počítače nebo rozvětví jiný virtuální počítač, pokud je zadán. |
Javac | Zkompiluje zdrojový strom v běžícím (Ant) virtuálním počítači. |
Javadoc / Javadoc2 | Generuje dokumentaci kódu pomocí nástroje javadoc. |
Mkdir | Vytvoří adresář. |
Vlastnictví | Nastaví vlastnost (podle názvu a hodnoty) nebo sadu vlastností (ze souboru nebo prostředku) v projektu. |
Rmic | Spustí kompilátor rmic pro určitou třídu. |
Tstamp | Nastaví vlastnosti DSTAMP, TSTAMP a TODAY v aktuálním projektu. |
Styl | Zpracuje sadu dokumentů pomocí XSLT. |
I když jsou k dispozici další nástroje pro vytváření softwarových verzí, Ant se snadno používá a lze jej zvládnout během několika minut. Kromě toho vám Ant umožňuje vytvářet rozšířené funkce rozšířením některých jeho tříd. Tuto expanzi ukážu v následujícím příkladu.
Co potřebuji k použití Ant?
Chcete-li spustit Ant, musíte nainstalovat tři komponenty: JDK, analyzátor XML a Ant (odkazy najdete v Zdrojích).
V mnoha případech je analyzátor XML součástí souborů lib distribuovaných pomocí běhu servletu nebo webového serveru. Pokud ne, postačí bezplatný analyzátor XML z java.sun.com.
Instalace Ant spočívá ve stažení souborů, přidání knihoven tříd do cesty ke třídě a přidání binárních souborů Ant do cesty.
Příklad scénáře
Tento ukázkový scénář by vám měl pomoci ukázat hodnotu Antu a poskytnout vhled do jeho výhod a toho, jak jej můžete použít.
Protože velké množství současného vývoje prostředí Java je zaměřeno na prostředí Java na straně serveru, vybral jsem pro příklad aplikaci na straně serveru. Vývojáři pracující na aplikacích Java na straně serveru se obvykle zajímají o kompilaci servletů, nasazení souborů JSP a nasazení souborů HTML, konfiguračních souborů nebo obrázků.
Společné schéma pro toto sestavení by zahrnovalo vývoj malých skriptů v jazycích specifických pro platformu na základě operačního systému serveru. Například vývojář pracující na počítači NT by mohl vytvořit dávkový soubor, který provede úkoly kompilace a poté spustí nasazení. Pokud by však produkční prostředí mělo Unix nebo Linux, musel by vývojář skript přepsat a zajistit tak synchronizaci skriptů.
Dobře, ukaž mi, jak to funguje
Doufám tedy, že vás přesvědčil o potřebě používat Ant a ukázal, jak jednoduchá je instalace. Nyní vám ukážu, jak jednoduchý je Ant, který se má použít, tím, že projdeme příkladem, který provádí jednoduchou kompilaci a nasazení.
Jednoduchý proces sestavení pomocí Ant (simple.xml)
Ve výše uvedeném příkladu je toho hodně k vysvětlení. Nejprve byste měli pochopit strukturu souboru simple.xml. Jedná se o dobře formátovaný soubor XML obsahující entitu projektu, která se skládá z několika cílových entit.
První řádek obsahuje informace o celkovém projektu, který má být postaven.
Nejdůležitějšími prvky projektové linie jsou výchozí
a basedir
.
The výchozí
atribut odkazuje na výchozí cíl, který má být spuštěn. Protože Ant je nástroj pro vytváření příkazového řádku, je možné provést pouze podmnožinu cílových kroků v souboru Ant. Mohl bych například provést následující příkaz:
% ant -buildfile simple.xml init
Tím se provede mravenec
a spusťte soubor simple.xml, dokud inic
cíle je dosaženo. V tomto příkladu je tedy výchozí hodnota nasadit
. Proces Ant vyvolaný v následujícím řádku proběhne přes simple.xml
soubor až do nasadit
je dosažen příkaz:
% ant -buildfile simple.xml
The basedir
Atribut je docela vysvětlující, protože je to základní adresář, ze kterého jsou načteny relativní odkazy obsažené v souboru sestavení. Každý projekt může mít pouze jeden basedir
atribut, takže si můžete vybrat, zda chcete zahrnout plně kvalifikované umístění adresáře, nebo rozdělit velký soubor projektu na menší soubory projektu s různými basedir
atributy.
Dalším sledovaným řádkem je cílový řádek. Zde jsou zobrazeny dvě různé verze:
The cílová
prvek obsahuje čtyři atributy: název
, -li
, pokud
, a záleží
. Ant vyžaduje název
atribut, ale další tři atributy jsou volitelné.
Použitím záleží
, můžete skládat úkoly Ant tak, aby závislá úloha nebyla zahájena, dokud nebude dokončena úloha, na které záleží. Ve výše uvedeném příkladu se čistá úloha nespustí, dokud inic
úkol byl dokončen. The záleží
Atribut může také obsahovat seznam hodnot oddělených čárkami označujících několik úkolů, na kterých závisí úkol v diskusi.
The -li
a pokud
příkazy umožňují určit příkazy, které mají být provedeny -li je nastavena určitá vlastnost nebo pokud tato vlastnost je nastavena. The -li
se provede, když je nastavena hodnota vlastnosti, a pokud
se provede, pokud není nastavena hodnota. Můžete použít k dispozici
příkaz k nastavení těchto vlastností, jak je znázorněno v následujícím příkladu, nebo je můžete nastavit pomocí příkazového řádku.
The inic
cíl z jednoduchého příkladu obsahuje čtyři řádky vlastnictví
příkazy, jak je znázorněno zde:
Tyto vlastnictví
řádky umožňují určit běžně používané adresáře nebo soubory. Vlastnost je dvojice jednoduchých názvů a hodnot, která vám umožní odkazovat na adresář nebo soubor jako na logickou entitu namísto fyzické.
Pokud byste chtěli odkazovat na sourceDir
proměnné později v souboru Ant, můžete jednoduše použít následující syntaxi k upozornění Ant k získání hodnoty pro tuto značku: $ {sourceDir}
.
Dva další příkazy přítomné ve výše uvedeném souboru sestavení jsou:
Tyto příkazy se používají k zajištění toho, aby v souboru nebyly žádné cizí soubory outputDir
(nebo třídy
adresář, pokud je dereferencován, jak je uvedeno výše). První příkaz odebere celý strom obsažený pod outputDir
. Druhý příkaz vytvoří adresář znovu.
Posledním řádkem hlavního zájmu vývojáře je následující kompilační řádek:
The javac
příkaz vyžaduje zdrojový adresář (vstupní umístění souborů .java) a cílový adresář (výstupní umístění souboru .classes). Je důležité si uvědomit, že všechny adresáře musí existovat před spuštěním mravenec
příkaz nebo být vytvořen pomocí mkdir
příkaz. Ant nevytváří adresáře založené na intuici, takže musíte vytvořit outputDir
, za použití mkdir
příkaz před výše uvedeným krokem kompilace.
Po kompilovat
úkol byl dokončen nasadit
Úkol provede operaci kopírování a přesune všechny soubory JSP ze zdrojového adresáře do adresáře nasazení. Pomocí copydir
příkaz zkopírujete celý adresář JSP z jednoho umístění do druhého. Použil jsem zkopírovat soubor
příkaz pro kopírování jednoho souboru vlastností jako součást sestavení.
Vysvětlení příkladu trvalo několik řádků, ale mělo by být zřejmé, že Ant je snadno použitelný nástroj. Použitím tohoto buildfile jako výchozího bodu byste měli být schopni začlenit Ant do svého vývojového úsilí. The mravenec
příkazy zobrazené ve výše uvedeném příkladu mají další funkce, z nichž některé budou popsány v tomto článku, zbytek je ponechán na vás spolu s odkazy na dokumentaci.
Důležité úkoly
Je na vás, abyste si přečetli vestavěné úlohy obsažené v distribuci Ant. Informace o jednotlivých příkazech najdete v uživatelské příručce v části Zdroje. Jako příklady dalších možností, které má správce sestav k dispozici bez jakéhokoli přizpůsobení, jsem vybral dva běžně používané příkazy.
Kompilace kódu (včetně EJB)
V předchozím jednoduchém příkladu jste viděli jednoduchou formu javac
příkaz. Nyní, pokud to prozkoumáte podrobněji, uvidíte, že můžete určit příznaky kompilace, jako je zastarání, ladění nebo optimalizace, stejně jako soubory, které budou nebo nebudou zahrnuty do kompilace.
Můžete použít zahrnout / vyloučit
subjekty uvnitř javac
úkol zahrnout / vyloučit soubory odpovídající vzoru v souboru název
atribut z kompilace. Z výše uvedeného příkladu chcete zahrnout soubory obsažené v libovolném adresáři končícím na .java, ale současně chcete vyloučit soubory s názvem Script.java, pokud vlastnost bsf. přítomen
je nastavena na hodnotu true.
Nastavil jsi bsf. přítomen
vlastnost pomocí následující úlohy, která prohledá cestu ke třídě zadaného názvu třídy a sad bsf. přítomen
podle výsledků hledání:
The javac
příkaz nebude obsahovat soubory zvané version.txt z kompilace na základě výše uvedeného příkazu vyloučit.
Generování javadoc
Dalším úkolem, který může Ant pomoci automatizovat, je generování javadocu. K vygenerování javadocu můžete použít následující příkaz:
Balíčky určují celkové balíčky, které bude obsahovat javadoc. The sourcepath
atribut směřuje k umístění zdrojových souborů. The javadoc
Příkaz také poskytuje atributy umožňující určit název okna a dokumentu. Ve spodní části každé stránky javadoc můžete také použít oznámení o autorských právech pomocí dno
atribut.
Může Ant dělat XYZ?
V tomto okamžiku jste viděli některé z možných úkolů v procesu sestavování, které Ant může automatizovat. Tyto úkoly jsou zahrnuty z krabice v Ant. Možná budete chtít přizpůsobit Ant, aby vám pomohl provádět některé obtížnější úkoly, jako je vytváření EJB a provádění vzdálené správy konfigurace. Někteří z vás možná budou chtít zvýšit možnosti hlášení Ant nebo vytvořit uživatelské rozhraní, které může spustit proces Ant.
Jednoduchá odpověď na otázku „Může Ant udělat XYZ?“ je „Ano, ale možná to budete muset přizpůsobit.“
Prodloužení Ant
V tomto okamžiku je zajímavé diskutovat o dvou rozšířeních Ant. Jedná se o zvýšené hlášení a schopnost vzdáleně distribuovat kód pomocí Ant.