Dziś porozmawiamy sobie o narzędziu które nazywa się Maven – czym jest, jak możemy go wykorzystać w naszych projektach, dlaczego to narzędzie jest tak ważne przy tworzeniu projektów które są bardziej skomplikowane niż prosty Hello World – W kolejnym wpisie postaram się przedstawić prosty projekt w taki sposób żeby to wszystko nie przerażało adeptów programowania – dziś zajmiemy się teorią 🙂

01. Czym jest Maven?

Maven to tak zwany “build management tool” – narzędzie dzięki któremu możesz zbudować projekt – pliki .java kompilowane są do plików .class, a cały projekt do pliku .jar (może być też zbudowany do .war lub .ear jednak obecnie najczęściej wykorzystywane jest rozszerzenie .jar).

Jednak Maven to coś więcej niż narzędzie do budowania projektów – chociaż jest to jego podstawowe zadanie.

02. Co oprócz prostego budowania?

Zarządzanie zależnościami – jedną z podstawowych zalet Mavena jest zarządzanie zależnościami. Wyobraź sobie sytuację że potrzebujesz skorzystać w swoim projekcie z jakiejś zewnętrznej biblioteki – nie musisz jej ściągać i dodawać do projektu, wystarczy że zadeklarujesz jej użycie w Mavenie, a zostanie ona pobrana oraz dodana do projektu.

Dzięki temu że biblioteka jest zadeklarowana w Mavenie, inne osoby które pracują nad projektem nie mają problemu z brakującymi zależnościami – Maven je pobierze. Dodatkowo – jeśli biblioteka z której korzystamy zależy również od innej biblioteki, ta również zostanie dodana do naszego projektu. Dzięki temu mamy pewność że wszystkie potrzebne zależności będą dostępne w naszym projekcie.

Testy – Maven jest w stanie uruchomić testy naszego projektu, oraz w zależności od statusu ich wykonania może przerwać lub kontynuować budowanie projektu. W dużych projektach nad którymi pracuje wielu developerów jednocześnie, zdarza się że wprowadzone przez jednego dewelopera zmiany psują jakąś funkcjonalność, jeśli wyłapią to testy – budowanie projektu może zostać przerwane. Dzięki temu programista który dokonał zmiany która zepsuła działanie programu wie o zaistniałej sytuacji i może podjąć odpowiednie działania.

Raporty – Maven jest zdolny do generowania raportów związanych z projektem np. jakie jest pokrycie kodu testami?

Wiele wiele więcej – Maven ma wiele dostępnych pluginów, dzięki czemu Maven może robić naprawdę wiele różnych rzeczy – co lepsze, jeśli potrzebujemy czegoś naprawdę specyficznego dla naszego projektu, sami możemy napisać plugin do Mavena 🙂

03. Maven może przytłaczać

Podczas pierwszego spotkania z Mavenem – może się zdawać że to czarna magia w najczystszej postaci, prawda jest jednak taka że nie taki diabeł straszny jak go malują.

Tak jak podczas nauki programowania ważne jest to aby nie łapać za wiele sznurków jednocześnie – poznanie podstaw Mavena, do czego służą każde z jego sekcji pomoże w późniejszym zrozumieniu nawet złożonych projektów.

Pamiętam że w momencie gdy zaczynałem swoją przygodę z bardziej zaawansowanymi projektami Maven sprawiał więcej problemów niż było z niego pożytku, efektem czego było jedynie frustracja – głęboki oddech i spokojne poznawanie narzędzia, krok po kroku pozwoliło mi odkryć możliwości Mavena.

04. Podsumowanie i plan

Bardzo ogólnikowo przedstawiłem zarys Mavena – czym jest i mniej więcej do czego możemy go używać.

W kolejny wpisie utworzymy prosty Mavenowy projekt oraz omówimy jego podstawowe sekcje. W kolejnym etapie rozbudujemy go o dodatkowe aspekty, w ostatnim etapie napiszemy własny plugin Mavenowy który będziemy mogli wykorzystać w naszym projekcie! 🙂