Maven Tutorial: Alles, was Sie wissen müssen, um loszulegen



Dieses Blog über das Maven-Tutorial behandelt alles, was Sie wissen müssen, um mit Maven zum Erstellen Ihrer Projekte zu beginnen.

Anstatt lange Skripte zum Erstellen Ihrer Projekte zu schreiben und die Abhängigkeiten manuell herunterzuladen, sollten Sie Maven verwenden und dieses Durcheinander beseitigen. In diesem Blog zum Maven-Tutorial erfahren Sie alles, was Sie benötigen, um Maven für Ihr Projekt zu verwenden. Nachdem Sie dieses Maven-Tutorial gründlich verstanden haben, besteht der nächste wahrscheinliche Schritt darin, Jenkins zu lernen, das die Phase der kontinuierlichen Integration von abdeckt .

In diesem Blog zum Maven-Tutorial werden wir die folgenden Themen behandeln:

  1. Warum brauchen wir Maven?
  2. Was ist Maven?
  3. Maven Architektur
  4. Maven Lebenszyklus, Phasen und Ziele
  5. Demo-Projekt.

Warum brauchen wir Maven?

Wenn Sie an Java-Projekten arbeiten, benötigen Sie meistens Abhängigkeiten. Abhängigkeiten sind nichts anderes als Bibliotheken oder JAR-Dateien. Sie müssen sie manuell herunterladen und hinzufügen. Außerdem wurde die Aktualisierung des Software-Stacks für Ihr Projekt manuell vor Maven durchgeführt. Es bestand daher ein Bedarf an einem besseren Build-Tool, das solche Probleme lösen konnte.





Hier kommt Maven ins Spiel. Maven kann alle Ihre Probleme im Zusammenhang mit Abhängigkeiten lösen. Sie müssen nur die Abhängigkeiten angeben und die Softwareversion, die Sie in der Datei pom.xml in Maven haben möchten, und Maven kümmert sich um den Rest.Versuchen wir nun zu verstehen, was genau Maven ist.

Was ist Maven?

Das Maven-Projekt wurde von der Apache Software Foundation entwickelt, wo es früher Teil des Jakarta-Projekts war. Maven ist ein leistungsstarkes Tool zur Build-Automatisierung, das hauptsächlich für Java-basierte Projekte verwendet wird. Maven hilft Ihnen dabei, zwei wichtige Aspekte beim Erstellen von Software anzugehen:



  • Es beschreibt, wie Software erstellt wird
  • Es beschreibt die Abhängigkeiten.

Maven bevorzugt Konventionen gegenüber Konfigurationen. Maven lädt Java-Bibliotheken und Maven-Plug-Ins dynamisch aus einem oder mehreren Repositorys wie dem Maven Central Repository herunter und speichert sie in einem lokalen Cache. Die Artefakte der lokalen Projekte können auch mit diesem lokalen Cache aktualisiert werden. Maven kann Ihnen auch beim Erstellen und Verwalten von Projekten helfen, die in C #, Ruby, Scala und anderen Sprachen geschrieben sind.

Die POM-Datei (Project Object Model) ist eine XML-Datei, die Informationen zum Projekt und Konfigurationsinformationen enthält, z. B. Abhängigkeiten, Quellverzeichnis, Plugin, Ziele usw., die von Maven zum Erstellen des Projekts verwendet werden. Wenn Sie einen Maven-Befehl ausführen, geben Sie Maven eine POM-Datei, um die Befehle auszuführen. Maven liest die Datei pom.xml, um ihre Konfiguration und Operationen durchzuführen.

Maven Ziele

Maven Ziele

Wann sollte jemand Maven benutzen?

    1. Wenn es zu viele Abhängigkeiten für das Projekt gibt.
    2. Wenn die Abhängigkeitsversion häufig aktualisiert wird.
    3. Kontinuierliche Builds, Integration und Tests können mithilfe von Maven problemlos durchgeführt werden.
    4. Wenn Sie eine einfache Möglichkeit benötigen, Dokumentation aus dem Quellcode zu generieren, den Quellcode zu kompilieren und kompilierten Code in JAR-Dateien oder ZIP-Dateien zu packen.

Maven Architektur

Maven Lebenszyklus, Phasen und Ziele

1. Maven-Lebenszyklus



Es gibt einen bestimmten Lebenszyklus, dem Maven folgt, um das Zielprojekt bereitzustellen und zu verteilen.

Es gibt drei integrierte Lebenszyklen:

  • Standard - Dies ist der Hauptlebenszyklus von Maven, da er für die Projektbereitstellung verantwortlich ist.
  • sauber - Dieser Lebenszyklus wird verwendet, um das Projekt zu bereinigen und alle vom vorherigen Build generierten Dateien zu entfernen.
  • Seite? ˅ - Ziel dieses Lebenszyklus ist es, die Standortdokumentation des Projekts zu erstellen.

Jeder Lebenszyklus besteht aus einer Folge von Phasen. Der Standard-Build-Lebenszyklus besteht aus 23 Phasen, da dies der Haupt-Build-Lebenszyklus von Maven ist

Andererseits besteht der saubere Lebenszyklus aus 3 Phasen, während der Standortlebenszyklus aus 4 Phasen besteht.

2. Maven-Phasen

Eine Maven-Phase ist nichts anderes als eine Phase im Maven-Build-Lebenszyklus. Jede Phase führt eine bestimmte Aufgabe aus.

Hier sind einige wichtige Phasen im Standard-Build-Lebenszyklus:

Was ist der Unterschied zwischen Git und Github?
  • bestätigen - In dieser Phase wird geprüft, ob alle für den Build erforderlichen Informationen verfügbar sind
  • kompilieren - Diese Phase kompiliert den Quellcode
  • test-kompilieren - Diese Phase kompiliert den Testquellcode
  • Prüfung - In dieser Phase werden Unit-Tests durchgeführt
  • Paket - Diese Phase packt kompilierten Quellcode in das verteilbare Format (jar, war).
  • Integrationstest - In dieser Phase wird das Paket verarbeitet und bei Bedarf bereitgestellt, um Integrationstests auszuführen
  • Installieren - In dieser Phase wird das Paket in einem lokalen Repository installiert
  • bereitstellen - In dieser Phase wird das Paket in das Remote-Repository kopiert

Maven führt Phasen in einer bestimmten Reihenfolge aus. Dies bedeutet, dass, wenn wir eine bestimmte Phase mit dem Befehl wie mvn ausführen, nicht nur die angegebene Phase ausgeführt wird, sondern auch alle vorhergehenden Phasen.

Wenn Sie beispielsweise den Befehl mvn deploy ausführen, dh die Bereitstellungsphase, die die letzte Phase im Standard-Build-Lebenszyklus darstellt, werden alle Phasen auch vor der Bereitstellungsphase ausgeführt.

3. Maven Ziele

Eine Folge von Zielen bildet eine Phase und jedes Ziel führt eine bestimmte Aufgabe aus. Wenn Sie eine Phase ausführen, führt Maven alle Ziele in einer Reihenfolge aus, die dieser Phase zugeordnet ist. Die verwendete Syntax lautet Plugin: Ziel. Einige der Phasen und die damit verbundenen Standardziele lauten wie folgt:

  • Compiler: Kompilieren - Kompilierungsphase
  • Compiler: Test - Test-Kompilierungsphase
  • todsicher: Test - Testphase
  • install: install - Installationsphase
  • Glas und Krieg: Kriegspaketphase

Ein Maven-Plugin ist eine Gruppe von Zielen. Diese Ziele sind jedoch nicht unbedingt alle an dieselbe Phase gebunden.Zum Beispiel das Maven Failsafe-Plugin, das für die Ausführung von Integrationstests verantwortlich ist. Für Unit-Tests benötigen Sie das todsichere Maven-Plugin.

Was ist Hashmap in Java

Demo-Projekt

In diesem Abschnitt der Maven Tutorial, wir werden uns ein Demo-Projekt ansehen. Um zu demonstrieren, wie ein Projekt mit Maven erstellt wird, habe ich ein erstellt Java-Projekt zusammen mit TestNG mit Eclipse IDE. Dies ist ein sehr einfaches Programm, in dem ich Code geschrieben habe, um den Titel einer Website zu testen.

Das Programm startet automatisch einen Webbrowser, navigiert zu der im Code genannten Website, ruft den Titel dieser Webseite ab und vergleicht ihn mit dem erwarteten Titel. Wenn der tatsächliche Titel und der erwartete Titel übereinstimmen, besteht der Testfall, andernfalls schlägt er fehl.

Also für dieses Projekt brauchen Sie , Maven und Eclipse auf Ihr System heruntergeladen. Die Versionen, die ich auf meinem System verwende, sind wie folgt:

  1. Finsternis - Enterprise Edition Version 4.12.0 (2019-06)
  2. Java - Version 1.8.0_211
  3. Maven - Version 3.6.1
  • Abgesehen davon müssen Sie das TestNG-Plugin für Eclipse herunterladen und können es mit den folgenden Schritten herunterladen:
    • Öffnen Sie Eclipse und gehen Sie zur Hilfe. Klicken Sie in der Hilfe auf den Eclipse-Marktplatz.
    • Geben Sie TestNG in das Feld Suchen ein und klicken Sie auf Los. In den Ergebnissen sehen Sie 'TestNG for Eclipse'. Sie müssen es herunterladen.
  • Nachdem Sie Ihr System mit den oben genannten Dingen eingerichtet haben, können Sie mit Maven ein Demo-Projekt erstellen. Jetzt werde ich Ihnen alle dafür erforderlichen Schritte erklären.
    • Klicken Sie in Eclipse auf Datei -> Neu -> Maven-Projekt.
    • Klicken Sie auf Einfaches Projekt erstellen (Archetypauswahl überspringen) und dann auf Weiter.
  • Jetzt sehen Sie ein Fenster mit Parametern wie Gruppen-ID, Artefakt-ID usw.
    • Gruppen-ID ist die eindeutige ID einer Gruppe, der das Projekt gehört.
    • Artefakt-ID ist der Name der endgültigen Kompilierungseinheit.
    • Version ist die Version des erstellten Artefakts. SNAPSHOT zeigt an, dass gerade gearbeitet wird.
    • Die Verpackung kann je nach Projekt aus Glas, Krieg oder Pom bestehen. Für unser Projekt werden wir jar auswählen. Geben Sie dann den Namen Ihres Projekts an.

  • Sobald Sie das Projekt erstellt haben, sehen Sie die Projektstruktur Ihres Maven-Projekts. Hier sehen Sie folgende Dinge -
    • pom.xml
    • src und Ziel
    • src / main / java
    • src / test / java
    • Maven-Abhängigkeiten
  • Erstellen Sie nun eine Klassendatei in src / main / test und nennen Sie sie DemoClass. Diese Klasse enthält den Selenium-Code, den wir zum Testen verwenden. Jetzt haben wir der Datei pom.xml Selenium-, TestNG-Abhängigkeiten sowie den Maven-Compiler und das Surefire-Plugin hinzugefügt. Der Code für DemoClass und pom.xml ist unten angegeben:
Paket maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test öffentliche Klasse DemoClass {@Test public void test () löst InterruptedException {// Deklaration und aus Instanziierung von Objekten / Variablen //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = new FirefoxDriver () // Kommentiere die obigen 2 Zeilen und kommentiere 2 aus Zeilen zur Verwendung von Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver-Treiber = new ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectedTitle = 'Welcome: Mercury Tours' String actualTitle = '' // starte Fire Fox und leite es an die Basis-URL driver.get (baseUrl) // erhalte den tatsächlichen Wert des Titels actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * Vergleiche den tatsächlichen Titel der Seite mit dem erwarteten und drucke * das Ergebnis als 'Bestanden' oder 'Nicht bestanden' * / if (actualTitle.contentEquals (expectedTitle)) {System.out.println ('Test bestanden!')} else {System.out.println ('Test fehlgeschlagen')} // Schließe Fire fox driver.close ()}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-SNAPSHOT EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selenium-java 3.141.59 org.testng testng 6.14.3 test
  • Bevor wir das Projekt ausführen, müssen wir die Klassendatei DemoClass in eine TestNG-Datei konvertieren. Klicken Sie dazu mit der rechten Maustaste auf DemoClass -> TestNG -> In TestNG konvertieren.

  • Um das Projekt auszuführen, klicken Sie mit der rechten Maustaste auf ein Projekt -> Ausführen als -> Maven bereinigen. Dadurch wird das Projekt gelöscht, indem alle vorherigen Builds entfernt werden.

  • Nach der Reinigung von Maven müssen Sie das Projekt testen, da wir den Code zum Testen der Webanwendung geschrieben haben. Klicken Sie also mit der rechten Maustaste auf Projekt -> Ausführen als -> Maventest. Dadurch wird die Website geöffnet und mit dem Titel der Website abgeglichen. Wenn es übereinstimmt, besteht unser Testfall.

  • Wir können die obigen Befehle auch über eine Eingabeaufforderung ausführen. Dafür benötigen wir den Pfad der Datei pom.xml.

    • Sie können den Pfad abrufen, indem Sie mit der rechten Maustaste auf die Datei pom.xml -> Eigenschaften -> Speicherort klicken.
    • Kopieren Sie den Pfad, öffnen Sie eine Eingabeaufforderung und fügen Sie sie dort mit cd ein. CD C: / Benutzer / Arvind Phulare / Eclipse-Workspace / maven.selenium.testng.
    • Sobald Sie dies getan haben, können Sie erneut Maven-Befehle wie mvn clean und mvn test eingeben.

Das ist es also von meiner Seite in diesem Blog im Maven-Tutorial. Ich hoffe, Sie haben die Dinge verstanden, die wir in diesem Maven-Tutorial besprochen haben.

Nachdem Sie dieses Maven-Tutorial verstanden haben, sehen Sie sich das an von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, DevOps zu verstehen und Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Maven-Tutorials und wir werden uns bei Ihnen melden