Lekce 2 - Instalace Mavenu a tvorba prvního projektu
V předchozí lekci, Úvod do vývojového nástroje Maven, jsme si řekli, co to Maven je a co vše má v naší aplikaci na starosti. Krátce jsme popsali, jak se ovládá a jak s ním budeme v dalších lekcích pracovat.
V dnešním tutoriálu si nejprve vysvětlíme, jak v
konzoli zjistit, zda máme Maven
nainstalovaný. Následně si ukážeme, jak Maven do svého
počítače přidat. Poté se již budeme moci pustit do tvorby
prvního Hello world
projektu.
Výpis informací o Mavenu
Maven je tzv. konzolová aplikace, ovládá se pomocí textových příkazů, které uživatel zadává do konzole. Ve Windows to může být Command Prompt (CMD) nebo PowerShell, v ostatních systémech některý z dostupných emulátorů terminálu, např. Xterm.
Ze všeho nejdříve se tedy podíváme, jestli je na našem stroji Maven již přítomen, či zda jej budeme muset nejprve nainstalovat. Pokud používáme jakýkoliv linuxový systém a máme již nainstalované a zprovozněné NetBeans či IntelliJ, je velmi pravděpodobné, že již máme zprovozněný i Maven. V případě Windows to tak jednoduché nebude a bude nejspíše potřeba pár úprav.
Otevřeme si tedy konzoli dle vlastního výběru. Ve Windows stiskneme
tlačítko Win, napíšeme cmd
a stiskneme
Enter. V ostatních systémech máme buď v panelu ikonku terminálu
nebo jej najdeme někde v menu s aplikacemi.
Poté zadáme příkaz:
$ mvn -v
Pokud se nám objeví výpis podobný tomu níže, máme vyhráno a můžeme následující podkapitolky klidně přeskočit. Systém nám takto oznamuje, že již máme na svém počítači Maven nainstalovaný a zprovozněný:
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"
Pokud se nám ale objeví hláška o nenalezeném souboru či příkazu, je potřeba zasáhnout.
Ve zbytku kurzu budeme psát příkazy, které je potřeba zadat
do konzole tak, jak je zvyklostí v unixovém světě. Všechna
lomítka v cestách k souborům a adresářům budou v unixové podobě
(/
). Ve Windows pak bude potřeba použít lomítka obrácená
(\
). Příkazy také budou začínat znakem $
,
signalizujícím, že jde o příkaz zadávaný obyčejným uživatelem.
Samotný znak $
samozřejmě není součástí příkazu, jde o
tzv. prompt, neboli výzvu k zadání příkazu. Ve
Windows příkaz obvykle začíná C:\>
.
Zprovoznění Mavenu v Linuxu
Maven je ve všech obvyklých distribucích v
repositářích, takže stačí nainstalovat balíček s názvem
maven
.
Například v Ubuntu zadáme příkaz:
$ sudo apt install maven
Takto jednoduše jsme zprovoznili Maven v Linuxu, pojďme se nyní podívat, jak téhož dosáhnout ve Windows.
Zprovoznění Mavenu ve Windows
Dobrou zprávou je, že pokud již máme nainstalované NetBeans nebo
IntelliJ podle návodu z našeho kurzu Základní
konstrukce jazyka Java, máme zároveň v počítači již i Maven, protože
jej obě IDE obsahují. V takovém případě postačí, když přidáme
příslušný adresář s Mavenem do systémové proměnné Path
,
abychom mohli spouštět příkaz mvn
na příkazové řádce.
V případě NetBeans se Maven ukrývá v adresáři
netbeans/java/maven/
. V případě IntelliJ
vyhledáme adresář plugins/maven/lib/maven3
.
Pokud bychom chtěli použít jinou verzi Mavenu, můžeme si ji stáhnout ze stránek https://maven.apache.org, kde v postranní nabídce nalezneme možnost Download. Stažený archiv pak stačí jenom někam rozbalit.
V adresáři s Mavenem se nachází podadresář bin/
. Ten
obsahuje binární soubor mvn
, kterým se Maven ovládá. Tento
soubor musíme přidat do systémové proměnné Path
. Stiskneme
tedy Win a začneme psát env
. Windows nám nabídnou
možnost Edit environment variables for your account, tu zvolíme. V
české verzi se okno Environment Variables, ve kterém proměnnou
Path
upravíme, jmenuje Proměnné prostředí. Do
vyhledávače bychom tedy zadali prom
a následně vybrali možnost
Upravit proměnné prostředí pro váš účet:

V okně Environment Variables vybereme proměnnou Path
a klikneme na Edit...:

V následujícím dialogu klikneme na New a pomocí Browse
vybereme onen bin/
adresář:

Potvrdíme tlačítkem OK a máme hotovo.
Změna systémové proměnné se projeví pouze v nově spuštěné konzoli. Pokud ji máme již otevřenou, tak ji musíme nejprve zavřít a znovu spustit.
Tvorba prvního Maven projektu
Nyní, když již máme Maven zprovozněný, si vyzkoušíme jeho použití.
Vytvoříme si klasický Hello world
projekt.
V konzoli zadáme příkaz:
$ mvn archetype:generate
Objeví se nám seznam dostupných archetypů, který můžeme tentokrát
směle ignorovat a stisknutím klávesy Enter pokračujeme. Takto se
nám vybere defaultní maven-archetype-quickstart
. Jde o podobný
archetyp, jako používají NetBeans a IntelliJ, když v nich vytváříme nový
projekt s Mavenem.
Poté se nám nabídne seznam dostupných verzí. Zkontrolujeme, že je předvybrána ta nejnovější a opět pouze odentrujeme.
Nastavení GroupId
Maven se nás dále zeptá na groupId
. Záleží pouze na nás,
jaké si zvolíme. Obvykle se používá stejný způsob pojmenovávání jako v
případě balíčků, tzv. reverzní doménové jméno naší
organizace. Zadáme tedy cz.itnetwork
.
Volba ArtifactId
a
package
Další dotaz se týká artifactId
, což je ve skutečnosti
název projektu a zároveň výsledného .jar
souboru bez čísla
verze. Zde zadáme hello-world
.
Maven se dále zeptá na verzi, jakou chceme nastavit, zvolíme
1.0
. V posledním kroku zvolíme název balíčku, ve kterém se
má vytvořit ukázková třída App
s metodou main()
.
Balíček pojmenujeme stejně jako groupId
, tedy
cz.itnetwork
. Maven nám nakonec zobrazí přehled o tom, co jsme
nastavili. Vše zkontrolujeme a odentrujeme, poté se vytvoří náš nový
projekt.
Zkrácený zápis tvorby projektu
Celý tento proces se dá zjednodušit zadáním všech potřebných
informací přímo při volání mvn archetype:generate
. K
nastavení jednotlivých informací použijeme přepínač -D
(z
anglického define) následovaný jménem nastavované proměnné a
její hodnotou. Například náš artifactId
můžeme takto
nastavit příkazem -DartifactId=hello-world
.
Celý příkaz pro vytvoření našeho projektu by vypadal následovně:
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DgroupId=cz.itnetwork -DartifactId=hello-world -Dversion=1.0 -Dpackage=cz.itnetwork
Struktura vytvořeného projektu
Vidíme, že se nám vytvořil adresář hello-world/
, ve
kterém je takováto struktura souborů a adresářů:

Tato adresářová struktura je nám pravděpodobně povědomá z projektů v našich lekcích základů Javy. Jde o standardizovanou strukturu projektu (Standard Directory Layout), kterou Maven prosazuje.
Přínosem této standardizace je, že nepotřebujeme Mavenu říkat, jak
máme projekt strukturovaný. Maven prostě hledá zdrojové kódy ve složce
src/main/java/
, testy ukládáme do src/test/java/
,
obrázky a další zdroje do složky src/main/resources/
atd. A je
na nás, abychom je umístili tam, kam patří. Další velkou výhodou této
jednotné struktury je, že usnadňuje dalším programátorům orientaci v
každém novém projektu, na kterém začínají pracovat.
Libovolným textovým editorem se můžeme podívat na soubor
App.java
. Uvidíme, že obsahuje metodu main()
, která
vypíše do konzole klasické Hello world
.
V příští lekci, Kompilace a spuštění projektu s Mavenem z příkazové řádky, se naučíme provádět základní úkony s naším projektem pomocí Mavenu. Ukážeme si, jak jej z příkazové řádky zkompilovat, spustit a vyčistit.