Struktura projektu Maven
POM, cykl życia i zależności
Struktura projektu Maven to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.
Struktura projektu Maven
Maven to narzędzie do budowania i zarządzania zależnościami, oparte na jednej zasadzie: konwencja zamiast konfiguracji. Wystarczy korzystać ze standardowego układu, aby większość elementów działała niemal bez konfiguracji. W tej lekcji omówiono układ katalogów, POM oraz zarządzanie zależnościami.
Standardowy układ katalogów
Maven oczekuje stałej struktury:
src/main/java— kod źródłowy produkcyjny.src/main/resources— zasoby produkcyjne.src/test/java— kod źródłowy testów.target/— wynik budowania (generowany automatycznie).
POM
Sercem projektu Maven jest plik pom.xml — model obiektu projektu. W pliku XML deklaruje się współrzędne, zależności, wtyczki i ustawienia budowania.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>Współrzędne: GAV
Każdy artefakt jest identyfikowany przez elementy groupId, artifactId i version (GAV). Te współrzędne jednoznacznie identyfikują projekt oraz każdą pobieraną zależność.
Deklarowanie zależności
Zależności umieszcza się wewnątrz elementu <dependencies>. Maven pobiera je wraz z zależnościami tranzytywnymi z repozytoriów takich jak Maven Central i zapisuje w lokalnej pamięci podręcznej.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>Zakresy zależności
Zakres określa, kiedy zależność znajduje się na ścieżce klas:
- compile — wszędzie (domyślnie).
- provided — tylko podczas kompilacji; w czasie działania dostarcza ją kontener.
- runtime — w czasie działania i podczas testów, ale nie podczas kompilacji.
- test — tylko podczas kompilowania i uruchamiania testów.
Zależności tranzytywne
Jeśli A zależy od B, a B zależy od C, Maven automatycznie udostępnia Państwu C — to właśnie tranzytywność. Gdy występuje konflikt wersji, Maven rozstrzyga go na podstawie najbliższej definicji w drzewie zależności.
Cykl życia budowania
Maven definiuje uporządkowany cykl życia składający się z faz. Domyślny cykl życia obejmuje kolejno: validate, compile, test, package, verify, install, deploy. Uruchomienie danej fazy uruchamia również wszystkie wcześniejsze fazy.
Typowe polecenia
mvn compile— kompiluje główny kod źródłowy.mvn test— uruchamia testy jednostkowe.mvn package— buduje plik JAR/WAR w katalogutarget/.mvn install— kopiuje artefakt do lokalnego repozytorium, aby mogły z niego korzystać inne projekty.
Lokalne repozytorium
Pobrane artefakty są przechowywane w pamięci podręcznej w katalogu ~/.m2/repository. Przy kolejnych kompilacjach Maven korzysta z pamięci podręcznej zamiast pobierać je ponownie. Polecenie mvn install umieszcza tam własny artefakt, aby projekty siostrzane mogły od niego zależeć.
Projekty wielomodułowe
Macierzysty POM z elementem <packaging>pom</packaging> może zawierać listę podrzędnych elementów <modules>. Maven buduje je w kolejności zależności, dzięki czemu duży system może współdzielić konfigurację i wersje z jednego miejsca.
Szybkie sprawdzenie
Sprawdźcie Państwo, czy rozumieją Państwo strukturę Maven.
Podsumowanie
Poznali Państwo podstawy Maven:
- Konwencja zamiast konfiguracji ze standardowym układem
src/main/java. - POM deklaruje współrzędne GAV, zależności i wtyczki.
- Zakresy (compile, provided, runtime, test) określają widoczność na ścieżce klas.
- Zależności są tranzytywne; konflikty są rozstrzygane na podstawie najbliższej definicji.
- Uporządkowany cykl życia oznacza, że uruchomienie danej fazy uruchamia wszystkie wcześniejsze fazy.
Często zadawane pytania
Czy lekcja „Struktura projektu Maven” jest bezpłatna?
Tak — pełny tekst „Struktura projektu Maven” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Struktura projektu Maven”?
POM, cykl życia i zależności Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Struktura projektu Maven”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura projektu Maven
- Wtyczki i cele Maven
- Podstawy Gradle
- Wybór narzędzia do budowania