2. diel - Inštalácia Mavenu a tvorba prvého projektu
V predchádzajúcej lekcii, Úvod do vývojového nástroja Maven , sme si povedali, čo to Maven je a čo všetko má v našej aplikácii na starosti. Krátko sme popísali, ako sa ovláda a ako s ním budeme v ďalších lekciách pracovať.
V dnešnom tutoriále si najskôr vysvetlíme, ako v
konzole zistiť, či máme Maven
nainštalovaný. Následne si ukážeme, ako Maven do svojho
počítača pridať. Potom sa už budeme môcť pustiť do
tvorby prvého Hello world
projektu.
Výpis informácií o Mavene
Maven je tzv. konzolová aplikácia, ovláda sa pomocou textových príkazov, ktoré používateľ zadáva do konzoly. Vo Windows to môže byť Command Prompt (CMD) alebo PowerShell, v ostatných systémoch niektorý z dostupných emulátorov terminálu, napr. Xterm.
Zo všetkého najskôr sa teda pozrieme, či je na našom stroji Maven už prítomný, alebo či ho budeme musieť najskôr nainštalovať. Pokiaľ používame akýkoľvek linuxový systém a máme už nainštalované a sprevádzkované NetBeans či IntelliJ, je veľmi pravdepodobné, že už máme sprevádzkovaný aj Maven. V prípade Windows to tak jednoduché nebude a bude zrejme potrebných pár úprav.
Otvoríme si teda konzolu podľa vlastného výberu. Vo Windows stlačíme
tlačidlo Win, napíšeme cmd
a stlačíme
Enter. V ostatných systémoch máme buď v paneli ikonku terminálu
alebo ho nájdeme niekde v menu s aplikáciami.
Potom zadáme príkaz:
$ mvn -v
Pokiaľ sa nám objaví výpis podobný tomu nižšie, máme vyhrané a môžeme nasledujúce podkapitolky pokojne preskočiť. Systém nám takto oznamuje, že už máme na svojom počítači Maven nainštalovaný a sprevádzkovaný:
Command line Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29) Maven home: /opt/maven Java version: 17.0.7, vendor: N/A, runtime: /usr/lib/jvm/java-17-openjdk Default locale: en_GB, platform encoding: UTF-8 OS name: "linux", version: "5.10.180-1-manjaro", arch: "amd64", family: "unix"
Pokiaľ sa nám ale objaví hláška o nenájdenom súbore či príkaze, je potrebné zasiahnuť.
Vo zvyšku kurzu budeme písať príkazy, ktoré je potrebné
zadať do konzoly tak, ako je zvyklosťou v unixovom svete.
Všetky lomítka v cestách k súborom a adresárom budú v unixovej podobe
(/
). Vo Windows potom bude potrebné použiť lomítka obrátené
(\
). Príkazy tiež budú začínať znakom $
,
signalizujúcim, že ide o príkaz zadávaný obyčajným užívateľom.
Samotný znak $
samozrejme nie je súčasťou príkazu, ide o tzv.
prompt, čiže výzvu na zadanie príkazu. Vo Windows
príkaz zvyčajne začína C:\>
.
Sprevádzkovanie Mavenu v Linuxe
Maven je vo všetkých obvyklých distribúciách v
repositároch, takže stačí nainštalovať balíček s názvom
maven
.
Napríklad v Ubuntu zadáme príkaz:
$ sudo apt install maven
Takto jednoducho sme sprevádzkovali Maven v Linuxe, poďme sa teraz pozrieť, ako to isté dosiahnuť vo Windows.
Sprevádzkovanie Mavenu vo Windows
Dobrou správou je, že pokiaľ už máme nainštalované NetBeans alebo
IntelliJ podľa návodu z nášho kurzu Základná
konštrukcia jazyka Java, máme zároveň v počítači už aj Maven,
pretože ho obe IDE obsahujú. V takom prípade postačí, keď pridáme
príslušný adresár s Mavenom do systémovej premennej Path
, aby
sme mohli spúšťať príkaz mvn
na príkazovom riadku.
V prípade NetBeans sa Maven ukrýva v adresári
netbeans/java/maven/
. V prípade IntelliJ
vyhľadáme adresár plugins/maven/lib/maven3
.
Ak by sme chceli použiť inú verziu Mavenu, môžeme si ju stiahnuť zo stránok https://maven.apache.org, kde v postrannej ponuke nájdeme možnosť Download. Stiahnutý archív potom stačí iba niekam rozbaliť.
V adresári s Mavenom sa nachádza podadresár bin/
. Ten
obsahuje binárny súbor mvn
, ktorým sa Maven ovláda. Tento
súbor musíme pridať do systémovej premennej Path
. Stlačíme
teda Win a začneme písať env
. Windows nám ponúknu
možnosť Edit environment variables for your account, tú
zvolíme:
V okne Environment Variables (v slovenskej verzii sa volá
Premenné prostredie) vyberieme premennú Path
a klikneme
na Edit...:
V nasledujúcom dialógu klikneme na New a pomocou Browse
vyberieme onen bin/
adresár:
Potvrdíme tlačidlom OK a máme hotovo.
Zmena systémovej premennej sa prejaví iba v novo spustenej konzole. Pokiaľ ju máme už otvorenú, tak ju musíme najprv zavrieť a znovu spustiť.
Tvorba prvého Maven projektu
Teraz, keď už máme Maven sprevádzkovaný, si vyskúšame jeho použitie.
Vytvoríme si klasický Hello world
projekt.
V konzole zadáme príkaz:
$ mvn archetype:generate
Objaví sa nám zoznam dostupných archetypov, ktorý môžeme tentoraz smelo
ignorovať a stlačením klávesu Enter pokračujeme. Takto sa nám
vyberie defaultný maven-archetype-quickstart
. Ide o podobný
archetyp, ako používajú NetBeans a IntelliJ, keď v nich vytvárame nový
projekt s Mavenom.
Potom sa nám ponúkne zoznam dostupných verzií. Skontrolujeme, že je predvybraná tá najnovšia a opäť iba odentrujeme.
Nastavenia GroupId
Maven sa nás ďalej spýta na groupId
. Záleží iba na nás,
aké si zvolíme. Obvykle sa používa rovnaký spôsob pomenovávania ako v
prípade balíčkov, tzv. reverzné doménové meno našej
organizácie. Zadáme teda cz.itnetwork
.
Voľba ArtifactId
a
package
Ďalšia otázka sa týka artifactId
, čo je v skutočnosti
názov projektu a zároveň výsledného .jar
súboru bez čísla
verzie. Tu zadáme hello-world
.
Maven sa ďalej spýta na verziu, akú chceme nastaviť, zvolíme
1.0
. V poslednom kroku zvolíme názov balíčka, v ktorom sa má
vytvoriť ukážková trieda App
s metódou main()
.
Balíček pomenujeme rovnako ako groupId
, teda
cz.itnetwork
. Maven nám nakoniec zobrazí prehľad o tom, čo sme
nastavili. Všetko skontrolujeme a odentrujeme, potom sa vytvorí náš nový
projekt.
Skrátený zápis tvorby projektu
Celý tento proces sa dá zjednodušiť zadaním všetkých potrebných
informácií priamo pri volaní mvn archetype:generate
. Na
nastavenie jednotlivých informácií použijeme prepínač -D
(z
anglického define) nasledovaný menom nastavovanej premennej a jej
hodnotou. Napríklad náš artifactId
môžeme takto nastaviť
príkazom -DartifactId=hello-world
.
Celý príkaz na vytvorenie nášho projektu by vyzeral nasledovne:
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DgroupId=cz.itnetwork -DartifactId=hello-world -Dversion=1.0 -Dpackage=cz.itnetwork
Štruktúra vytvoreného projektu
Vidíme, že sa nám vytvoril adresár hello-world/
, v ktorom je
takáto štruktúra súborov a adresárov:
Táto adresárová štruktúra je nám pravdepodobne povedomá z projektov v našich lekciách základov Javy. Ide o štandardizovanú štruktúru projektu (Standard Directory Layout), ktorú Maven presadzuje.
Prínosom tejto štandardizácie je, že nepotrebujeme Mavenu hovoriť, ako
máme projekt štruktúrovaný. Maven jednoducho hľadá zdrojové kódy v
zložke src/main/java/
, testy ukladáme do
src/test/java/
, obrázky a ďalšie zdroje do zložky
src/main/resources/
atď. A je na nás, aby sme ich umiestnili tam,
kam patrí . Ďalšou veľkou výhodou tejto jednotnej štruktúry je, že
uľahčuje ďalším programátorom orientáciu v každom novom projekte, na
ktorom začínajú pracovať.
Ľubovoľným textovým editorom sa môžeme pozrieť na súbor
App.java
. Uvidíme, že obsahuje metódu main()
,
ktorá vypíše do konzoly klasické Hello world
.
V budúcej lekcii, Kompilácia a spustenie projektu s Mavenom z príkazového riadku , sa naučíme vykonávať základné úkony s naším projektom pomocou Mavenu. Ukážeme si, ako ho z príkazového riadka skompilovať, spustiť a vyčistiť.