Apache Maven je jedněmi nadšeně přijímán a masivně propagován a jinými zatracován. Podle mého názoru je problém s Mavenem v jeho propagaci – nejčastěji je prezentován jako „deklarativní Ant“. Maven dělá něco podobného jako Ant, ale dělá to jinak a umí leccos nového. (Jakoby ona odlišnost od všeho, co v Javě známe, byla vyjádřena i velmi specifickým logem se sedícím programátorem…)

Co Maven přináší
Můj pohled na Maven je ten, že jde o vývojové prostředí bez grafické nadstavby, ovládané z příkazové řádky. To přináší několik výhod, například tu, že můžete spustit toto vývojové prostředí dávkově z plánovače na serveru. K čemu je to dobré? Je na tom postavená kontinuální integrace…
Dalším velkým přínosem Mavena je centrální repository knihoven (či obecně řečeno artefaktů). Potřebné knihovny a jejich verze uvedete v konfiguračním souboru pom.xml a Maven se postará o jejich stažení a stáhne i knihovny transitivně závislé.
Úskalí Mavenu
Největším problémem Mavenu je jeho novost. Prostě občas něco nefunguje a občas něco nenajdete v dokumentaci. Na druhou stranu po nasazení Mavenu u nás ve firmě před půl rokem o něm již není slyšet – to co funguje, funguje dobře.
Maven vyžaduje přesně pojmenované adresáře v pevné struktuře. Sice je možné nastavení cest ovlivnit konfigurací, ale některé zásuvné moduly konfiguraci nerespektují. Defaultní cesty musíte ve svém projektu dodržovat, jinak něco nebude fungovat. Pro nový projekt to není problém, u starého projektu může být rigidita Mavenu na závadu.

Maven je dosti neobvyklý systém, z toho vyplývá delší čas, než člověk vytvoří konfiguraci podle svého gusta. Deklarativní povaha konfigurace tomu neprospívá.
Za nevýhodu Mavenu, byť dočasnou, považuji slabou podporu ve vývojových prostředích. Ano, všechny tři hlavní vývojová prostředí pro Javu se chlubí podporou Mavenu, ale k dokonalosti to má hodně daleko.
Veřejné centrální repository je velmi dobrá myšlenka, ale má několik praktických úskalí. Nejčastějším problémem je to, že správci centrálního repository jsou konzervativní a nedávají do repository nejnovější verze. Dělají správně, ale ne vždy se to hodí.
Další problém s repository se týká licencí – některé knihovny nemůžou být v repository z důvodu licenčního ujednání, které předpokládá manuální potvrzení pravidel licence. Maven je automat… Tuto barieru postihlo i několik knihoven od Sunu.
Killing application aneb Proč použít Maven
- Pokud vyvíjíte Open Source projekt, použijte Maven.
- Docela dobrým důvodem pro Maven je použití kontinuální integrace. Má zkušenost je taková, že server pro kontiální integraci si bude rozumět lépe s deklarativní povahou Mavenu než se sadou Antovských skriptů.
- Velmi se mi líbí dokumentační web, který dokáže Maven vytvořit. Nejenom, že získáte sadu dokumentačních utilit, které nemusíte téměř konfigurovat, ale také výsledky jejich práce budou mít jednotný design a mohou být provázané na výpis zdrojových kódů (webový). Viz články o FindBugs a CheckStyle.
- U větších vývojových týmů je problém s distribucí knihoven do vývojových prostředí – ručně je to pracné a nespolehlivé. Tento problém můžete elegantně vyřešit pomocí lokálního Maven repository. Maven vyřeší i závislosti mezi verzemi.
Závěr
Pokud se pouštíte do nového projektu, pak stojí Maven za úvahu. Chce to ovšem dostatek trpělivosti na začátku, která se vám po čase může několikanásobně vrátit.

Poslední komentáře
před 1 rok 6 dnů
před 1 rok 13 týdnů
před 1 rok 34 týdnů
před 1 rok 41 týdnů
před 2 roky 13 týdnů
před 2 roky 13 týdnů
před 2 roky 13 týdnů
před 2 roky 51 týdnů
před 2 roky 51 týdnů
před 2 roky 51 týdnů