1. diel - Úvod do vývojového nástroja Maven
Vitajte v kurze venovanom na balíčkovacom systéme Maven. V dnešnom tutoriále si uvedieme, čo to Maven je, čo vie a na čo slúži. Tiež si povieme, ako sa ovláda a aké má alternatívy.
Minimálne požiadavky kurzu
Pre úspešné absolvovanie kurzu predpokladáme základné znalosti práce s PC a orientácie v operačnom systéme. K správnemu pochopeniu celej problematiky je treba tiež znalosť jazyka Java aspoň na úrovni objektovo orientovaného programovania, teda vrátane absolvovania kurzu Základná konštrukcia jazyka Java.
Na čo Maven slúži
S pojmom Maven sa určite čoskoro stretne každý, kto sa začne venovať programovaniu v Jave. Dokonca už v kurze základov programovania v Jave študent pri zakladaní nového projektu dostáva inštrukciu, aby z ponuky projektov vybral položku Java with Maven.
Maven je pomocný nástroj, ktorý programátori v Jave používajú na zjednodušenie a na automatizáciu svojej každodennej práce s projektom, na ktorom pracujú. Týchto činností je pomerne veľa od kompilácie zdrojových kódov, vygenerovania dokumentácie, zabalenia aplikácie do distribučného balíčka až po nahranie aplikácie na server, kde má bežať. Všetky tieto činnosti by sa samozrejme dali zvládnuť nastaviť ručne – bez použitia Mavenu, ale ďaleko jednoduchšie a pohodlnejšie je zaúkolovať Maven.
Predstavme si napríklad, že máme aplikáciu, ktorá obsahuje
už niekoľko desiatok tried v niekoľkých balíčkoch. Tie
sú uložené v niekoľkých podadresároch a my ich chceme
všetky skompilovať. Prechádzať všetky podadresáre so zdrojovými kódmi a
robiť to pomocou príkazu javac
nie je úplne pohodlné.
Našťastie môžeme povedať Mavenu, že chceme
skompilovať všetky naše zdrojové kódy v projekte a
on sa o to postará.
Maven je navrhnutý tak, že všetku svoju činnosť vykonáva pomocou pluginov. Je to v podstate iba taký spúšťač pluginov. Jednotlivé pluginy majú na starosť vždy nejakú konkrétnu činnosť. Týchto pluginov je relatívne veľké množstvo. Pokrývajú snáď všetky mysliteľné činnosti, ktoré by sme ako programátori chceli s projektom vykonávať. Poďme sa teda pozrieť aspoň na tie najzákladnejšie činnosti, ktoré Maven obstaráva.
Maven budovateľ
Maven má predovšetkým na starosti automatizáciu prevádzania aplikácie zo zdrojového kódu do spustiteľnej podoby. Iste už všetci vieme, že zdrojový kód aplikácie je pred spustením potrebné pomocou kompilátora skompilovať. Vo svojom IDE to dosiahneme stlačením jediného tlačidla, ale už nevidíme, čo sa stane na pozadí. IDE následne zavolá Maven a ten vykoná všetko potrebné. Tomuto procesu sa hovorí build a Maven je preto často označovaný aj ako buildovací nástroj.
Maven organizátor
Okrem buildu aplikácie má Maven na starosti aj samotné
založenie projektu, v rámci ktorého aplikáciu píšeme.
Určite sme si všimli, že pri vytvorení nového projektu typu sa nám v IDE
vytvorí aj jeho základná adresárová štruktúra s podadresármi ako
src/main/java/
a src/main/test/
. Dokonca tu pri
použití Netbeans nájdeme súbor s ukážkovým Hello
world! programom (pri použití Intellij sa vytvorí, iba
ak zaškrtneme políčko Add sample code pri vytváraní projektu).
Toto všetko je práca Mavenu.
Maven používa na vygenerovanie nového projektu tzv. archetypy. Tie si môžeme predstaviť ako akési šablóny. Archetyp použitý v IDE pre základný projekt v miestnych lekciách pre začiatočníkov, je iba jeden z mnohých. Maven má archetypy pre nepreberné množstvo typov ďalších aplikácií. Ich zoznam si môžeme ľahko v našom IDE pozrieť.
-
Stačí si v Netbeans pri zakladaní nového projektu vybrať Java with Maven - Project from Archetype a môžeme si prezrieť ich zoznam:
-
Stačí si v Intellij pri zakladaní nového projektu vybrať v okne New Project generátor Maven archetype a zmeniť Catalog na Maven Central a ich zoznam vidíme po rozkliknutí Archetype:
Bezpochyby jednou z najužitočnejších vlastností Mavenu je schopnosť spravovať knižnice, ktoré naša aplikácia potrebuje k svojmu behu. Existuje totiž voľne dostupný repositár javovských knižníc, tzv. Maven repository, z ktorého Maven vie na požiadanie stiahnuť a pridať do nášho projektu knižnice podľa našich potrieb. Jediné, čo musíme urobiť, je špecifikovať, aké knižnice av akých verziách chceme. Maven potom obstará všetko potrebné, aby sme ju mohli využívať v našej aplikácii.
Ako do nášho projektu pridáme knižnicu z Maven repository, si ukážeme v niektorej z nasledujúcich lekcií.
Alternatívy k Mavenu
Momentálne sú v Jave ešte používané dva ďalšie podobné nástroje:
- Ant
- a Gradle.
Ant je už pomerne dlhoročný buildovací nástroj, ale stále sa používa. Na rozdiel od Mavenu nedisponuje žiadnou obdobou Maven Repository a vyžaduje manuálnu správu knižníc. Tiež nevynucuje žiadnu defaultnú adresárovú štruktúru projektu. Tú potom musíme definovať v príslušnom XML súbore.
Gradle
Gradle spopularizovalo predovšetkým Android Studio, ktoré ho používa ako defaultný buildovací nástroj. Gradle vie používať Maven Repository a od Mavenu sa líšia predovšetkým spôsobom konfigurácie. Zatiaľ čo Maven sa konfiguruje pomocou XML súboru, Gradle používa na svoju konfiguráciu programovací jazyk Groovy.
Ovládanie Mavenu
Maven je nástroj pre príkazový riadok počítača.
Používa sa tak, že sa na príkazovom riadku zavolá príkaz mvn
s potrebnými parametrami. Avšak všetky najpoužívanejšie
IDE obsahujú podporu Mavenu, takže ako programátori sme pri
každodennej práci od tohto oslobodení a ovládame ho priamo z IDE.
Napriek tomu je veľmi dobré poznať aspoň základy práce priamo z príkazového riadka, pretože niekedy nám nemusí podpora v IDE stačiť alebo žiadne IDE po ruke práve nemáme. V tomto seriáli sa zameriame práve na prácu z príkazového riadku, ale budeme si priebežne tiež ukazovať, ako by sme to isté urobili priamo v IDE.
V nasledujúcej lekcii, Inštalácia Mavenu a tvorba prvého projektu , sa naučíme pracovať s Mavenom z príkazového riadka. Ukážeme si, ako ho na našom počítači sprevádzkovať a ako s jeho pomocou vytvoriť prvý projekt.