Maven – automatyczne budowanie projektu
Pisanie aplikacji w Javie wymaga importowania bibliotek w celu zapewnienia konkretnych funkcjonalności . Jak zdążyliśmy się już wcześniej przekonać jest ich bardzo dużo i często nie ma potrzeby podłączania dodatkowych bibliotek. Jednakże, aby zestawić połączenie z bazą danych potrzebujemy zewnętrznego sterownika dostarczonego przez producenta.
Dlaczego używać Mavena?
Tak jak wspomnieliśmy wyżej niektóre biblioteki dołączamy do naszych projektów z zewnątrz. Zatem musimy je wyszukać oraz dołączyć do projektu. Dołączenie pojedynczej biblioteki nie wydaje się skomplikowanym zadaniem, zatem po co w ogóle uczyć się nowego narzędzia?
Maven jest narzędziem, które nie tylko ułatwia dołączanie zewnętrznych bibliotek do projektów, ale także ułatwia zarządzanie ich wersją. W normalnym przypadku, gdy chcemy uaktualnić pliki bibliotek jesteśmy zmuszeni do ich ręcznej podmiany. W przypadku Mavena ten możemy łatwo zautomatyzować ten proces.
Dodatkowym atutem jest ogromne repozytorium zawierające mnóstwo gotowych rozwiązań, które normalnie musielibyśmy zaimplementować sami.
Plik pom.xml
Project Object Model (POM) jest głównym składnikiem projektu. Składa się z różnych tagów, których znaczenie jest następujące.
- project – główny tag projektu. Wszystkie inne znajdują się wewnątrz niego.
- groupId – Nazwa organizacji, która tworzy projekt. np. pl.programistajava.
- artifactId – Określa cel projektu. Może to być plik jar.
- version – wersja aplikacji. Zmienia się wraz z kolejnymi poprawkami lub dodawanymi funkcjonalnościami.
- ModelVersion – wersja użytego Mavena
- url – adres naszego projektu.
- dependencies – różne dodatkowe zależności, takie jak: zewnętrzne biblioteki, sterowniki do baz danych.
- name – nazwa projektu.
Tworzenie projektu z Maven
Jednym ze sposobów jest ściągnięcie oprogramowania z oficjalnej strony projektu oraz rozpakowanie go w dowolnym miejscu na dysku. Następnym krokiem jest dodanie zmiennej środowiskowej.
My jednak wykorzystamy pakiet dołączony do IDE Eclipse. Aby sprawdzić czy w naszym środowisku jest zainstalowany Maven wystarczy wybrać:
Window → Preferences → Maven
Jeśli na liście opcji go nie ma należy pobrać go z repozytorium Eclipse. Przy okazji sprawdzania warto zaznaczyć opcję „Download repository index at startup”.
Tworzenie nowego projektu Maven w Eclipse
W celu utworzenia nowego projektu jak klikamy:
File → new → Maven Project
Na razie zaznaczamy brak artefaktu. Wypełnienie kolejnych okienek wymaga zrozumienie tagów XML z pliku pom.xml.

Tworzenie projektu Maven w Eclipse
Po utworzeniu projektu wybieramy plik pom.xml. Zobaczymy w nim dane, które wypełniliśmy przed chwilą.
Moc Mavena pochodzi z jego ogromnego repozytorium, które jest dostępne w sieci. Wystarczy wyszukać hasło „Maven repository”, a następnie interesujący nas moduł. Po wybraniu odpowiedniej wersji jedyne co należy zrobić to wkleić pod tagiem <dependecies>
. Poniżej przykładowy dokument pom.xml.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>pl.programistajava</groupId> <artifactId>MyMavenApp.jar</artifactId> <version>0.0.1-SNAPSHOT</version> <name>FirstApp</name> <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> </dependencies> </project> |
Dzięki zastosowaniu Mavena nie musimy już ręcznie dodawać sterownika do bazy danych. Wystarczyło znaleźć odpowiednią zależność w repozytorium. Poniżej obrazek pokazujący automatycznie dodany sterownik bazy danych MySQL.

Maven – struktura projektu
Poniżej znajduje się przykładowy kod pobierający dane z bazy.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package pl.programistajava; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Main { final static String URL = "jdbc:mysql://192.168.0.31:3306/database"; public static void main(String[] args) throws ClassNotFoundException, InstantiationException { try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(URL, "java_clnt", "sql"); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM Gory"); while(rs.next()) { System.out.println(rs.getInt(1) + " " + rs.getString(2)); } conn.close(); } catch ( SQLException e) { e.printStackTrace(); } } } |
Korzystanie z Mavena niesie ze sobą wiele korzyści. Powyżej pokazaliśmy przykład dużo łatwiejszego zarządzania projektem. W repozytorium natomiast znajduje się mnóstwo gotowych bibliotek z rozwiązaniami, które normalnie byśmy musieli sami opracować. Zatem zanim spróbujemy sami coś zrobić warto sprawdzić czy ktoś nie zrobił już tego wcześniej i udostępnił.