Maven

Słowem wstępu

Jeżeli programujesz w Javie, lub dopiero zamierzasz wypłynąć na jej szerokie wody, to jest prawie pewne, że prędzej czy później spotkasz się z projektem w którym wykorzystuje się Maven firmy Apache. Czym jest to narzędzie i do czego się go używa? Postaram się odpowiedzieć na te pytania w serii kolejnych wpisów.

Po co mi Maven?

Maven został stworzony z myślą o ustandaryzowaniu procesów takich jak:

  • budowanie projektu
  • zarządzanie zależnościami
  • elementarne zarządzanie projektem (np. generowanie raportów)

W tym wpisie postaram się przybliżyć Tobie proces budowania aplikacji napisanej w Javie przy użyciu właśnie Maven’a.

Przykłady pokazane poniżej były realizowane przy pomocy środowiska IntelliJ w wersji community (darmowa).

Instalacja Maven (Windows 10)

Pobierz paczkę .zip z programem ze strony projektu (http://maven.apache.org/download.cgi).

Następnie rozpakuj ją w wybranym przez siebie katalogu np.: C:\Program Files\Maven.

Potrzebne będzie dodanie zmiennych środowiskowych. W tym celu wejdź do:

  • Panel kontrolny >> Zabezpieczenia i Konserwacja >> System. 
  • Znajdź link o tytule “Zaawansowane ustawienia systemu” .
  • Po kliknięciu z okna wybierz przycisk “Zmienne środowiskowe”
  • W otwartym oknie dodaj 2 wpisy w oknie “Zmienne systemowe” (Rys 1.).

M2_HOME C:\Program Files\Maven
MAVEN_HOME C:\Program Files\Maven

  • Następnie w tym samym obszarze “Zmienne systemowe” w oknie “Zmienne użytkownika …”, znajdź zmienną PATH 
  • Użyj przycisku “Edytuj…”. 
  • Dodaj w kolejnym wierszy nowego okna wartość: %M2_HOME%\bin (Rys. 2)

Uruchom wiersz poleceń i wpisze mvn -version. W odpowiedzi powinna zostać zwrócona informacja o wersji Maven’a którą właśnie dodaliśmy.

Rys. 1. Zmienne systemowe z dodanymi nowumi wpisami dla Maven
Rys. 2 Zmienne użytkownika w oknem edycji zmiennej PATH

Projekt Maven – IntelliJ

Stwórzmy projekt oparty o Maven w IntelliJ (chesz używać IntelliJ sprawniej zerknij na ten wpis). W tym celu wybierz tworzenie nowego projektu i z menu wybierz Maven (Rys. 3), a następnie potwierdź swój wybór. W kolejnych krokach dodaj nazwę projektu, jego lokalizacje na dysku i zatwierdź.

Rys. 3 Utworzenie projektu Maven w IntelliJ

Po chwili zostanie utworzony projekt, który powinien wyglądać podobnie jak zaprezentowano poniżej (Rys. 4).

Rys. 4 Drzewo katalogów nowo utworzonego projektu

Jak widać, oprócz standardowej struktury folderów otrzymujemy folder resources w którym przechowywane będą np.: pliki konfiguracyjne oraz inne pliki statyczne. Dodatkowo pojawił się plik pom.xml
Dodatkowo należy wspomnieć, że pliki zbudowanego projektu zostaną zapisane do folderu /src/target (tworzonego na etapie budowania projektu).

POM.XML

Plik pom.xml jest głównym plikiem konfiguracyjnym projektu zarządzanego z poziomu Maven’a. Struktura inicjalna pliku pom wygląda następująco (Rys. 5):

Rys. 5 Początkowa struktura pliku pom.xml

Inicjalny plik konfiguracji używany przez Maven’a zawiera min.: tag <project> w obrębie którego, powinny być zawarte wszystkie elementy decydujące o kształcie projektu. Pierwotnie dodany jest <groupId>, będący nazwą grupy projektów, <artifactId> będący nazwą projektu oraz <version> którego chyba nie trzeba opisywać.

Paczkowanie

Procesy które możemy wywołać przy użyciu Maven’a zamknięte są w tzw. cyklu życia (eng. Lifecycle). O cyklu opowiem w kolejnych postach.
Teraz musisz uwierzyć mi na słowo, że istnieje element cyklu nazwany package. Zobacz co stanie się z projektem w którym uruchomimy komendę mvn package (Rys. 6).

Rys. 6 Wynik uruchomienia komendy Maven’a – mvn package.

Budowanie projektu zakończyło się sukcesem. Na powyższym obrazku widać, że maven:

  • sprawdza zasoby, 
  • następnie kompiluje kod projektu, 
  • kolejno sprawdza zasoby dla uruchomienia testów, 
  • kompiluje testy, 
  • uruchamia testy 

Na samym końcu buduje paczkę nazwaną maven-example-1.0-SNAPSHOT.jar (nazwa projektu + wersja z pliku pom.xml).
Plik ten wraz z innymi, wygenerowanymi podczas pracy Maven’a znajduje się w katalogu target, który pojawił się w drzewie katalogów projektu (Rys. 7).

Rys. 7 Drzewo katalogu po zakończeniu pracy mavena (mvn package)

Podsumowanie

Podczas podróży przez ten post udało się zainstalować narzędzie firmy Apache, Maven.
Następnie użyliśmy szablonu projektu Maven’a z IntelliJ i dzięki temu udało się wywołać proces budowania paczki programu. W kolejnych wpisach opowiem trochę więcej o cyklu życia, a także o tym jak Maven pozwala na import zewnętrznych bibliotek. Do przeczytania!!!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *