what is maven maven tutorial
Ten samouczek wprowadzający do Mavena wyjaśni, czym jest Maven, dlaczego używać Mavena, jego definicję, podstawowe terminologie, typy repozytorium Maven itp .:
W tym samouczku poznamy Mavena, jego definicję, omówienie, kroki operacyjne w Mavenie i zrozumiemy podstawową terminologię dotyczącą Mavena, czynności wykonywane przez Mavena oraz szczegółowo typy repozytoriów Mavena.
Zaczynajmy!!
Lista samouczków w tej serii Maven
Samouczek nr 1: Co to jest Maven - samouczek Maven dla początkujących (Ten samouczek)
Samouczek nr 2: Co to jest POM (model obiektu projektu) i Pom.Xml w Maven
Samouczek nr 3: Wtyczki Gradle Vs Maven i Maven
Samouczek nr 4: Zależność i integracja Mavena z Eclipse i TestNG
Samouczek nr 5: Maven With Jenkins & Maven Dokumentacja projektów
Samouczek nr 6: 31 Najczęściej zadawane pytania i odpowiedzi w rozmowie z Mavenem
Czego się nauczysz:
Co to jest Maven
Maven to narzędzie do kompilacji i zarządzania projektami, które jest zwykle używane w strukturach zbudowanych w języku Java. Jest rozwijany przez Apache Software Foundation. Maven, słowo z języka jidysz, oznacza „zbieracz wiedzy”. Został wprowadzony, aby umożliwić proces uruchamiania budowy w Jakarta Turbine Project.
Maven jest kontrolowany przez plik Project Object Model (pom). Podczas pracy z frameworkami wbudowanymi w Javę często mamy do czynienia z szeregiem zależności.
Zanim pojawił się Maven, wszystkie zależności, które są niczym innym jak plikami JAR, musiały zostać dodane ręcznie do naszego frameworka. Musieliśmy również zadbać o aktualizację oprogramowania w naszym projekcie.
najlepszy darmowy program do pobierania wideo dla systemu Windows 10
Maven zapewnia automatyczne pobieranie plików JAR i bibliotek projektu. W pliku pom .xml należy opisać tylko informacje dotyczące wersji oprogramowania i rodzaju zależności.
Maven może zająć się projektami w języku Ruby, C # i innych językach. Zajmuje się budowaniem projektów, ich zależnościami i dokumentacją.
ANT, inne narzędzie opracowane przez Apache Software Foundation, jest również używane do budowania i wdrażania projektów. Ale Maven jest bardziej zaawansowany niż ANT. Podobnie jak ANT, Maven uprościł proces budowania. Krótko mówiąc, Maven ułatwił życie programistom.
Dlaczego warto korzystać z Maven
Maven wykonuje następujące czynności:
- Repozytorium, aby pobrać zależności.
- Posiadanie podobnej struktury folderów w całej organizacji.
- Integracja z narzędziami ciągłej integracji, takimi jak Jenkins.
- Wtyczki do wykonywania testów.
- Zawiera informacje o tym, jak opracowywane jest oprogramowanie / projekt.
- Proces budowania jest prostszy i spójny.
- Zawiera wytyczne dotyczące najlepszych praktyk, których należy przestrzegać w projekcie.
- Zwiększa wydajność projektu.
- Łatwo przejść do nowych atrybutów Mavena.
- Integracja z narzędziami do kontroli wersji, takimi jak Git.
Maven zajmuje się procesami, takimi jak wydania, dystrybucja, raportowanie, kompilacje, dokumentacja i SCM. Maven łączy się z repozytorium Maven Central i ładuje je lokalnie. Niektóre środowiska IDE obsługujące tworzenie projektów za pomocą Maven to NetBeans, Eclipse, IntelliJ i tak dalej.
Maven powinien być używany w naszych projektach w następujących scenariuszach:
- Jeśli projekt wymaga dużej liczby zależności.
- Jeśli wersja zależności wymaga częstej aktualizacji.
- Jeśli projekt wymaga szybkiej dokumentacji, kompilacji i pakowania kodu źródłowego do plików JAR lub ZIP.
Kroki operacyjne Mavena
# 1) Pierwszy Maven przegląda plik POM .xml.
#dwa) Zależności są ładowane do lokalnego repozytorium.
# 3) Przechodzi przez wbudowane cykle życia Mavena, jak pokazano poniżej:
- Domyślna: Dba o wdrażanie projektu.
- Czysty: Usuwa wszelkie błędy, tym samym czyści projekt i usuwa artefakt utworzony w trakcie poprzedniego procesu kompilacji.
- Teren: Dba o dokumentację projektu.
# 4) Każdy wbudowany cykl ma kilka faz. Na przykład, Domyślnie ma dwadzieścia trzy fazy, podczas gdy czysta, a witryna ma odpowiednio trzy i cztery fazy.
# 5) Każdy cykl Mavena przechodzi przez kilka etapów, w których określony etap ma określony cel.
Poniżej wymieniono niektóre z ważnych faz:
- Uprawomocnić: Sprawdza, czy wszystkie dane wymagań wstępnych do ukończenia kompilacji są dostępne.
- Skompilować: Kod źródłowy jest kompilowany.
- Test - kompilacja: Skompilowano testowy kod źródłowy.
- Test: Wykonywane są testy jednostkowe.
- Pakiet: Kod źródłowy jest kompilowany i pakowany w pliki JAR lub ZIP.
- Test integracyjny: Pakiet jest wdrażany i jeśli wystąpią jakiekolwiek problemy, wykonywane są przypadki testowe integracji.
- Pakiet instalacyjny: Jest instalowany w lokalnym repozytorium.
- Rozmieścić: Kopia pakietu jest udostępniana ze zdalnego repozytorium.
Fazy te należy wykonać w odpowiedniej kolejności. Ponadto, jeśli rozmieścić faza, tj. końcowa faza cyklu Mavena musi zostać wykonana, a następnie wszystkie poprzednie fazy tego cyklu muszą zostać pomyślnie zakończone.
Z wiersza poleceń fazy są uruchamiane w następujący sposób:
mvn , na przykład, walidacja mvn
# 6) Grupa celów Mavena tworzy fazę. Podobnie jak fazy Mavena, każdy cel musi być wykonywany w określonej kolejności.
Cel ma następującą składnię:
Wtyczka: cel
Tutaj omówiliśmy niektóre z faz wraz z celami z nimi związanymi:
- kompilator: kompiluj (używany w fazie kompilacji)
- kompilator: test (używany w fazie kompilacji testów)
- surefire: test (używany w fazie testowania)
- install: install (używany w fazie instalacji)
- jar: war (używany w fazie pakowania)
- wojna: wojna (używane w fazie pakowania)
Etapy operacyjne działania Maven przedstawiono schematycznie poniżej:
Terminologie w Maven
- POM : To oznacza Project Object Model. Jest to plik XML zawierający informacje o projekcie, zależnościach występujących w projekcie, katalogu pliku źródłowego, informacji o wtyczce i tak dalej. Są to dane niezbędne dla Mavena do całkowitego zbudowania projektu. Maven czyta plik pom, aby uzyskać wszystkie te informacje.
Projekt Maven w Eclipse IDE z fragmentem kodu z pliku POM XML pokazano poniżej.
- Identyfikator grupy : Rozpoznaje nasz projekt jako jedyny spośród wszystkich projektów. GroupId jest częścią pliku pom. Często mówi się o nim jako o tożsamości grupy projektów.
- ArtifactId : Plik jar, który jest wdrażany w repozytorium Maven. ArtifactId jest częścią pliku pom. Często mówi się o tym jako o tożsamości i nazwie naszego projektu.
- Wersja : Określa wersję pliku jar projektu. Wersja jest również częścią pliku pom.
Jak pokazano na powyższym obrazku, możemy to zobaczyć, a tagi stanowią część zależności zdefiniowanych dla projektu.
- Centralne repozytorium Maven : To symbol zastępczy, w którym znajdują się pliki JAR, biblioteki, wtyczki i dane konfiguracyjne wymagane przez Maven do zbudowania projektu.
Jeśli chcemy dodać zależności Selenium w naszym projekcie, musimy mieć poniższy fragment kodu w pliku pom.
org.seleniumhq.selenium selenium-java 4.0.0-alpha-5
Spośród wielu projektów podniesionych w centralnym repozytorium Maven identyfikuje Selenium za pomocą groupId. Podobnie ArtifactId jest jak podprojekt w ramach groupId.
Na przykład, Kod selenu jest obsługiwany przez języki takie jak Java, C # i tak dalej. Tutaj, z artifactId, widać, że łączymy się tylko z JARami powiązanymi z Javą. Również wersja pliku JAR, który ma być powiązany z projektem, jest również częścią zależności.
Możemy również opublikować własny projekt w repozytorium Maven, podając te trzy informacje.
Repozytorium Maven
Repozytorium Maven może mieć trzy typy:
- Repozytorium lokalne
- Zdalne repozytorium
- Centralne repozytorium
Gdy Maven odczyta zależności z pliku POM, najpierw przeszukuje je w lokalnym repozytorium, następnie w centralnym, a na końcu w zdalnym repozytorium. Jeśli zależności nie zostaną znalezione w żadnym z trzech repozytoriów, użytkownik zostanie powiadomiony o błędzie i proces zostanie zatrzymany.
1) Lokalne repozytorium Maven
Lokalne repozytorium znajduje się w naszym systemie lokalnym - głównie w .m2 Katalog (C: / Users / superdev /.m2), który pokazuje jego obecność po zainstalowaniu Mavena w naszym systemie i udało nam się pomyślnie wykonać polecenie Mavena.
Możliwe jest również zmodyfikowanie tej lokalizacji w settings.xml (MAVEN_HOME / conf /settings.xml) za pomocą localRepository etykietka.
Poniżej fragment kodu xml pokazuje, jak zmienić lokalizacje lokalnego repozytorium:
C: Maven m2 # 2) Centralne repozytorium Maven
Centralne repozytorium jest rozwijany przez grupę Apache Maven i jest hostowany w Internecie. To jest uważane za centralne repozytorium i ma wszystkie wspólne biblioteki. Podobnie jak w przypadku lokalnego repozytorium, możemy również domyślnie zmodyfikować lokalizację, do której mają zostać pobrane, zmieniając plik setting.xml.
# 3) Zdalne repozytorium Maven
Zdalne repozytorium jest również hostowane w Internecie. W niektórych scenariuszach firma może opracować własne zdalne repozytorium i przeprowadzić wdrożenia w swoich prywatnych projektach. Będą one własnością tej konkretnej firmy i będą mogły być obsługiwane tylko w jej obrębie.
najlepsze darmowe oprogramowanie do pobierania filmów z YouTube
Zdalne repozytorium działa podobnie jak repozytorium centralne. Ilekroć jakiekolwiek zależności lub konfiguracje są wymagane z tych repozytoriów, należy je najpierw pobrać do naszego lokalnego, a następnie użyć.
Przykładowy kod xml dla zdalnego repozytorium z identyfikatorem i adresem URL jest pokazany poniżej.
com.src.repository http://maven.comp.com/maven2/
Wniosek
Mamy nadzieję, że masz jasne wyobrażenie o tym, czym jest maven, dlaczego używamy Mavena, kroki operacyjne w Maven, cykle Mavena, fazy, cele, podstawowa terminologia w Maven i typy repozytoriów Mavena.
W naszym następnym samouczku zbadamy, jak zbudować projekt w Maven, środowisko skonfigurowane dla Mavena i wiele innych powiązanych tematów.
rekomendowane lektury
- Integracja Mavena z TestNg przy użyciu wtyczki Maven Surefire
- Samouczek AWS CodeBuild: wyodrębnianie kodu z kompilacji Maven
- Konfigurowanie Mavena za pomocą Eclipse Java IDE
- Co to jest POM (model obiektu projektu) i pom.xml w Maven
- Wtyczki Gradle Vs Maven i Maven
- Maven With Jenkins & Maven Dokumentacja projektów
- 31 Najczęściej zadawane pytania i odpowiedzi w rozmowie z Mavenem
- Zależność i integracja Mavena z Eclipse i TestNG