Maven – identifikace problémů

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ý.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *