Někdy narazíte s Mavenem na problémy a proto bych chtěl ukázat několik nástrojů, které umožní problémy lépe identifikovat a řešit. Než začneme určitě doporučuji přečíst si bezplatnou knihu Better builds with Maven.
Základem při identifikaci problémů je soubor pom.xml a dále řešení problémů se závislostmi.
Soubor pom.xml
K tomu lze použít plugin help. Ten podporuje tyto příkazy:
- help:effective-pom – tento příkaz vypíše skutečný pom tak jak je používán pro sestavení (tj. včetně profilů, dědičností, výchozích hodnot, dosazení proměnných, …).
- help:effective-settings – ukáže skutečné hodnoty ze souboru settings.xml.
- help:active-profiles – vypíše seznam všech aktivních profilů (ať jsou definované v–settings.xml, profiles.xml nebo v–pom.xml).
- help:describe -Dplugin=XXX -Dfull=true – popíše všechny atributy a také všechny goaly.
Závislosti
Dalším velkým okruhem problémů jsou závislosti. Pokud hledáte nějakou závislost, kterou chcete do projektu přidat, určitě navštivte vyhledávač mvnrepository.com.
Pokud se naopak v projektu objevuje závislost, která zde být nemá (či by měla být v jiné verzi), vygenerujte stránku projektu pomocí příkazu mvn site a navštivte vygenerovanou stránku target/site/dependencies.html. Zde uvidíte přehledný strom závislostí.
U používaných pluginů je doporučené uvádět verze. Později když dojde k vydání nové verze, bude aplikace používat stále původní ozkoušenou kombinaci pluginů.
Maven si každý den zjišťuje, zda nebyly vydány nové verze závislostí a aktualizuje si soubory maven-metadata-local.xml v lokální cache repository (~/.m2/repository). Někdy ovšem nastane problém, že se některý z těchto souborů poškodí (chyba spojení do internetu, násilné ukončení Mavenu, …) a pak nezbývá nic jiného než lokální cache promazat příkazem rm -r ~/.m2/repository (někdy stačí promazat jen část).
To je vše
Doufám, že se mi podařilo popsat způsoby, jak najít skutečnou příčinu problému a Maven tak bude méně magický.