Apache Maven je nástroj pro automatizaci sestavování a správu softwarových projektů, který se používá hlavně pro projekty Java. Využívá objektový model projektu (POM), který poskytuje jednotný systém sestavení s konzistentním použitím ve všech projektech. Maven také poskytuje správu závislostí, rozšiřitelnost prostřednictvím pluginů a integraci s Git pro správu verzí. Může také generovat informace o vašem projektu (příklad lze nalézt zde).
V tomto tutoriálu nainstalujeme Apache Maven na systém Debian 10 a otestujeme jej pomocí jednoduché java aplikace.
Požadavky
- Instance Debianu 10, ve které máte přístup k uživateli root nebo uživateli s právy sudo.
Pokud používáte uživatele sudo, spusťte a použijte root shell pro délku tohoto nastavení:
sudo -s
Krok 1:Instalace JDK
Aktualizujte svůj index balíčků a nainstalujte všechny aktualizace pomocí příkazů:
apt updateapt upgrade -y
Poté nainstalujte balíčky default-jdk, wget a git. První poskytuje vývojovou sadu kompatibilní s java (OpenJDK 11), ke stažení Mavenu bude použit wget a pro krok testování je vyžadován git.
apt install -y default-jdk wget git
Maven vyžaduje nastavení proměnné prostředí $JAVA_HOME. Můžete jej nastavit v celém systému pomocí následujícího příkazu:
echo "export JAVA_HOME=/lib/jvm/default-java">> /etc/profile
Krok 2:Instalace Apache Maven
Nejprve si stáhněte a importujte veřejné klíče používané vývojáři Apache Maven. Ty budou použity k ověření
cd /tmpwget https://www.apache.org/dist/maven/KEYSgpg --import KEYS &&rm KEYS
Poté přejděte na stránku stahování Apache Maven a zkopírujte nejnovější odkazy ke stažení pro formát „binární archiv tar.gz“ a jeho odpovídající soubor podpisu. Stáhněte si je následovně:
wget -O maven.tgz LINK.tar.gzwget -O maven.tgz.asc LINK.tar.gz.asc
Například:
wget -O maven.tgz https://www-eu.apache.org/dist/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gzwget -O maven.tgz.asc https://www.apache.org/dist/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz.asc
A ověřte podpis pomocí následujícího příkazu. Podpis by se měl shodovat s jedním z dříve importovaných klíčů.
gpg --verify maven.tgz.asc maven.tgz
Než budete pokračovat, ujistěte se, že výsledný výstup obsahuje Dobrý podpis. Například:
gpg:Podpis vytvořen Út 27. srpna 2019 17:10:12 CESTgpg:pomocí klíče RSA BBE7232D7991050B54C8EA0ADC08637CA615D22Cgpg:Dobrý podpis od "Enrico Olivelli]>"premail] [e-mail]Poté rozbalte a přesuňte výsledný adresář pomocí:
tar -xzf maven.tgzrm maven.tgz*mv apache-maven* /opt/mavenDále přidejte adresář /opt/maven/bin do své proměnné prostředí $PATH:
echo "export PATH=$PATH:/opt/maven/bin">> /etc/profileZdroj /etc/profile pro načtení nových proměnných prostředí pomocí:
. /etc/profileNyní byste měli být schopni používat maven. Zkuste následující:
mvn -vMěli byste vidět výstup podobný následujícímu:
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T17:06:16+02:00)Maven home:/opt/maven/maven.0 /ventime/maven.0 verze:Deusr.m /java-11-openjdk-amd64Výchozí národní prostředí:en_US, kódování platformy:UTF-8OS název:"linux", verze:"4.19.0-6-amd64", arch:"amd64", rodina:"unix"Krok 3:Testování Maven
Tento krok je volitelný.
Můžeme zkusit sestavit jednoduchý projekt Hello World s Mavenem, abychom si ověřili, že funguje správně. Naklonujte toto úložiště Github pomocí následujících příkazů:
klon cd /tmpgit https://github.com/nxnjz/java_maven_helloworld.gitSestavte projekt pomocí Maven:
balíček cd java_maven_helloworld/mvnPříkaz mvn package spustí každou fázi sestavení v pořadí až do fáze balíčku. Ve výchozím nastavení to zahrnuje následující hlavní fáze:ověření, kompilace, test, balíček. Po úspěchu se ukončí s následujícím výstupem:
[INFO] -------------------------------------------- ----------------------------[INFO] VYTVÁŘENÍ ÚSPĚCHU[INFO] --------------- -------------------------------------------------- --------Nyní můžeme spustit zkompilovaný JAR:
java -cp target/hello-world-0.1.0.jar hello.HelloWorld
- Co je Maven
- Příručka Začínáme s Maven
Pokud při sledování tohoto průvodce narazíte na problémy, zanechte prosím níže komentář.