Apache Maven

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Apache Maven je nástroj pro správu, řízení a automatizaci buildů aplikací. Ačkoliv je možné použít tento nástroj pro projekty psané v různých programovacích jazycích, podporován je především jazyk Java.

Název maven pochází z jidiš a znamená „znalec“. Maven byl vytvořen jako nástroj pro zjednodušení buildů pro projekt Jakarta Turbine. +more Hlavním impulzem pro vznik byla snaha o standardizaci a znovupoužitelnost buildovacích skriptů, která v tehdy používaném nástroji Apache Ant nebyla plně podporována.

Cíle aplikace

Maven je navržen pro usnadnění práce při buildování aplikací a agendou s tím spojenou. Jeho tvůrci určili pět oblastí, které by měl Maven pokrývat. +more * Usnadnění procesu buildování, * jednotný systém buildování, * poskytování kvalitních informací o projektu, * poskytování direktiv pro „best practices“, * poskytnutí transparentního přidávání nových funkcí.

Struktura aplikace

Základním principem fungování Mavenu je popsání projektu pomocí Project Object Model. Tento model popisuje softwarový projekt nejen z pohledu jeho zdrojového kódu, ale včetně závislostí na externích knihovnách, popisu procesu buildování a různých funkcí s tím spojených (jako je spouštění testů, sbírání informací o zdrojových kódech a podobně).

Maven sám je postaven na modulární architektuře a funguje na principu volání jednotlivých pluginů. Maven sám pouze obstarává dodání a spuštění nadefinovaných pluginů. +more Maven nemá žádné vlastní grafické uživatelské rozhraní a běží pouze na příkazové řádce a pluginy tak mohou využívat všechny nástroje, které dokáží komunikovat pomocí standardních vstupů.

Výchozí nastavení Mavenu vyžaduje následující adresářovou strukturu:

AdresářPopis
Kořenový adresářobsahuje pom. xml ostatní adresáře
src/main/javaobsahuje kompilovatelné . +morejava soubory
src/main/resourcesobsahuje další soubory, například konfigurační XML
src/test/javaobsahuje třídy testů
src/test/resourcesobsahuje konfigurační soubory pro testy
.

Ačkoliv je tato struktura obecně doporučována, je možné ji změnit pomocí konfigurace v pom.xml

Project Object Model

Project Object Model je koncept popisu projektu jako objektu. Za tímto účelem je definovaná jednoduchá XML struktura, která definuje jednotlivé části projektu a jeho závislosti na externích knihovnách a nástrojích. +more Současně je možné definovat konstanty, které pak mohou využít jednotlivé pluginy. Tento XML dokument se nachází v kořenovém adresáři projektu a je pojmenován pom. xml. Pokud je projekt složen z více dílčích projektů nebo modulů, každý z nich má pak svůj vlastní pom. xml soubor, který dědí vlastnosti od nadřazeného souboru a může přidávat další položky. Díky této struktuře je pak možné sestavit celý projekt jediným příkazem.

Minimální kostra pom.xml může být například následující:

4.0.0

com.mycompany.app my-app 1.0

junit junit 3.8.1

test

Takovýto projekt může pak být kompilován a mohou být na něm spouštěny JUnit testy. Maven sám se postará o dodání potřebných knihoven.

Pluginy

Všechny pluginy jsou volány jednoduchým příkazem mvn [název_pluginu]:[goal]. Goal je prakticky označení funkce pluginu, která je volána.

Příkladem takového příkazu může být kompilace projektu: mvn compiler:compile

Jelikož při sestavování aplikace je obvykle voláno více takovýchto pluginů, bylo by nepraktické volat každý samostatně. Z tohoto důvodu Maven definuje Build Lifecycle (životní cyklus buildu). +more Každý plugin pak může být asociován s některou z těchto fází.

Build LifeCycle

Maven umožňuje rozdělit proces buildu do více fází. Tento přístup umožňuje nejen automaticky spouštět pluginy, ale také specifikovat fázi, ve které má Maven skončit. +more Například nám během vývoje stačí zkompilovat zdrojové kódy a otestovat je bez deploye aplikace na server.

Výchozí cyklus maven je nastaven takto:

* process-resources * compile * process-test-resources * test-compile * test * package * install * deploy

Dependencies

V pom. xml je možné u každého projektu nadefinovat jeho závislosti na externích knihovnách. +more Jednotlivé prvky Artifacts jsou jednoznačně definovány podle atributů a . Maven pak automaticky vyhledá a nainstaluje potřebné knihovny. Samotné vyhledávání probíhá v definovaných úložištích (repository). Kromě globální maven repository, která je veřejně přístupná, je možné založit i další soukromá nebo firemní úložiště.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top