0Pricing
Java Academy · Lekcja

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 katalogu target/.
  • 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

  1. Struktura projektu Maven
  2. Wtyczki i cele Maven
  3. Podstawy Gradle
  4. Wybór narzędzia do budowania
← Powrót do Java Academy