Wtyczki i cele Maven
Dostosowywanie procesu budowania
Wtyczki i cele Maven to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 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.
Wtyczki i cele Maven
Sam Maven prawie nic nie robi — całą właściwą pracę wykonują wtyczki. Wtyczka udostępnia cele, a cele są przypisywane do faz cyklu życia. W tej lekcji pokazano, jak wtyczki dostosowują proces budowania.
Wtyczki a cele
Wtyczka to spakowany zbiór powiązanych możliwości. Cel to jedno konkretne zadanie w ramach wtyczki. Na przykład Compiler Plugin udostępnia cele compile i testCompile.
Współrzędne celu
Cel można wywołać bezpośrednio jako plugin:goal. Na przykład mvn compiler:compile lub mvn surefire:test. Zwykle cele uruchamiają się automatycznie, ponieważ są przypisane do faz.
Przypisywanie do faz
Domyślny typ pakowania z wyprzedzeniem przypisuje standardowe wtyczki do faz. W projekcie typu jar cel compile wtyczki Compiler Plugin jest przypisany do fazy compile, a cel test wtyczki Surefire Plugin — do fazy test. Dlatego polecenie mvn test działa od razu.
Konfigurowanie kompilatora
Wtyczkę konfiguruje się wewnątrz elementu <build><plugins>. W tym miejscu ustawia się poziom wersji Java, aby kompilator generował kod docelowo dla konkretnej wersji.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>
</plugins>
</build>Wtyczka Surefire
Surefire uruchamia testy jednostkowe podczas fazy test. Można skonfigurować testy, które mają zostać uwzględnione, wykonywanie równoległe oraz argumenty JVM. Jej odpowiednik, Failsafe, uruchamia testy integracyjne podczas fazy verify.
Przypisywanie dodatkowego wykonania
Blok <execution> jawnie przypisuje cel do fazy, opcjonalnie wraz z własną konfiguracją. W ten sposób można dodać dodatkową pracę, na przykład generowanie kodu przed kompilacją.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>print-banner</id>
<phase>generate-sources</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>Budowanie fat JAR-a
Domyślny plik JAR nie zawiera zależności. Wtyczka Shade (lub wtyczka Assembly) pakuje wszystko do jednego wykonywalnego pliku uber-jar, przypisując jej cel do fazy package.
Wtyczka Exec
Wtyczka Exec pozwala uruchomić aplikację z poziomu Maven za pomocą polecenia mvn exec:java, wskazując klasę główną. Jest to wygodne podczas szybkiego uruchamiania bez pakowania aplikacji.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.App</mainClass>
</configuration>
</plugin>Zarządzanie wtyczkami
W przypadku budowania wielomodułowego element <pluginManagement> w macierzystym POM przypina wersje wtyczek i współdzieloną konfigurację. Moduły podrzędne odwołują się następnie do wtyczki bez powtarzania jej wersji, dzięki czemu kompilacje pozostają spójne.
Odkrywanie konfiguracji
Użyjcie polecenia mvn help:describe -Dplugin=compiler, aby wyświetlić cele i parametry wtyczki. To najszybszy sposób na sprawdzenie, jakie opcje udostępnia wtyczka, bez opuszczania terminala.
Szybkie sprawdzenie
Sprawdźcie Państwo, czy rozumieją Państwo działanie wtyczek i celów.
Podsumowanie
Poznali Państwo sposób działania wtyczek Maven:
- Całą właściwą pracę podczas budowania wykonują wtyczki, które udostępniają cele.
- Cele są przypisane do faz cyklu życia, dlatego standardowe fazy działają od razu.
- Wtyczki konfiguruje się w elemencie
<build><plugins>; dodatkowe wykonania pozwalają dodać kolejne przypisania. - Shade/Assembly budują fat JAR-y, Exec uruchamia aplikację, a Surefire/Failsafe uruchamiają testy.
mvn help:describewyświetla cele i parametry wtyczki.
Często zadawane pytania
Czy lekcja „Wtyczki i cele Maven” jest bezpłatna?
Tak — pełny tekst „Wtyczki i cele 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 „Wtyczki i cele Maven”?
Dostosowywanie procesu budowania Ć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 2 z 4.
Ile czasu zajmuje lekcja „Wtyczki i cele 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