Maven – zarządzanie zależnościami

Wstęp

W ostatnim wpisie poznaliśmy narzędzie Maven firmy Apache.
Po zainstalowaniu Maven’a oraz uruchomieniu prostego programu, zbudowaliśmy paczkę oraz prześledziliśmy zdarzenia zapisane w logach podczas paczkowania. W dzisiejszym wpisie zaprezentuję kolejną bardzo ważną funkcję, a mianowicie zarządzanie zależnościami.

Co to są zależności?

Jak wiadomo, podstawowe funkcje budowanego projektu można napisać przy pomocy Javy, a konkretnie jej JDK Zasadniczo wszystkie inne wymyślone funkcjonalności można napisać, używając tych podstawowych elementów JDK.
Jednak, jeżeli ktoś już napisał jakieś narzędzie i chce się nim podzielić, albo je sprzedać, to może stworzyć bibliotekę, którą inni programiści będą mogli użyć we własnych projektach.
Centralne repozytorium Mavena jest miejscem, w którym można znaleźć właśnie takie gotowe biblioteki.

Używanie zewnętrznych bibliotek

Aby zrozumieć zasadę zarządzania repozytorium musimy wrócić do pliku pom.xml.
W ciele pliku konfigurującego należy dodać nowe tagi.

<dependencies></dependencies> – które jest nadrzędnym tagiem do wszystkich zależności 

oraz wewnątrz powyższego:

<dependency></dependency> które odnosi się do pojedynczej zależności i w swoim obszarze zawiera jej definicję.Przykład znajdziecie np.: we wpisie o EventBus, gdzie potrzebowałem użyć biblioteki Guava.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>maven-example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
	//// tutaj szczegóły zależności
       </dependency>
   </dependencies>

</project>

Repozytorium Maven

Jak do powyższego pliku dodać nasze zależności? Skąd je brać? Tak jak wspomniałem we wstępie, gdy potrzebujemy użyć biblioteki np.: Log4j do logowania zdarzeń, wchodzimy na stronę https://mvnrepository.com/
i w wyszukiwarce wpisujemy Log4j.

W wyniku otrzymamy:

Następnie klikamy w pierwszy element zwrócony na liście i przechodzimy do detali biblioteki.

Wybieramy jedną z wersji (ja wybrałem najnowszą) i przechodzimy do ekranu na którym widać element kodu potrzebny do dodania w pliku pom.xml tak aby Maven mógł zaimportować tę bibliotekę do projektu.

Import biblioteki do projektu. Po skopiowaniu widniejącej wartości do naszego pliku  pom.xml, wygląda on następująco:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>maven-example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>org.apache.logging.log4j</groupId>
           <artifactId>log4j-core</artifactId>
           <version>2.14.1</version>
       </dependency>
   </dependencies>

</project>

Po wklejeniu podanego taga do wewnątrz <dependencies> IntelliJ zasugerowało importowanie nowych bibliotek (automatycznie rozpoznaje zmiany w pliku pom.xml). Potwierdzająć rozpoczniemy krótki proces importowania biblioteki. Powinna być widoczna zmiana w zakładce External Libraries w oknie projektu (jak niżej):

Wywołanie zaimportowanych funkcjonalności.

W tej chwili powinna być udostępniona możliwość użycia funkcjonalności oferowanych przez zaimportowaną bibliotekę Log4j.
Sprawdźmy:
Dodajmy funkcjonalność do klasy Logging, któr aposiada metodę główną main().

Po uruchomieniu programu otrzymujemy w konsoli odpowiednie wiadomości zależne od typu logowania jaki sprecyzowaliśmy.

Podsumowanie

Praca nad nowymi projektami oraz nauka ciekawych bibliotek staje się dzięki Maven’owi dostępna na wyciągnięcie ręki. Mam nadzieję, że uda Ci się zaimportować coś ciekawego i że Maven zagości już na stałe w Twoich programach.

W kolejnym wpisie postaram się pokazać czym są pluginy i jak je stosować
w strukturze Maven’a

Dodaj komentarz

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