JavaRush /Java-Blog /Random-DE /Teil 4: Maven-Grundlagen

Teil 4: Maven-Grundlagen

Veröffentlicht in der Gruppe Random-DE
Dieses Material ist Teil der Reihe „Einführung in die Unternehmensentwicklung“. Vorherige Artikel: Teil 4. Maven-Grundlagen – 1Maven ist ein Tool zum Verwalten und Erstellen von Projekten – ein echter Assistent des Java-Programmierers. Es erleichtert dem Entwickler das Leben in allen Phasen der Arbeit: von der Erstellung der Projektstruktur über die Anbindung der notwendigen Bibliotheken bis hin zur Bereitstellung des Produkts auf dem Server. Wenn Sie mit einem beliebigen Framework arbeiten, müssen Sie Maven verwenden. Schauen wir uns also heute die Hauptfunktionen an und sehen, wie sie verwendet werden sollten.

Schritt-für-Schritt-Installation von Maven

  1. Zuerst müssen Sie Maven installieren, indem Sie es über diesen Link herunterladen .

  2. Als nächstes müssen Sie das heruntergeladene Archiv entpacken und die Umgebungsvariable M2_HOME auf einen Link zum Speicherort des entpackten Archivs setzen. Zum Beispiel C:\Programme\maven\

  3. Um zu überprüfen, ob alles installiert ist, schreiben Sie in die Befehlszeile:

    MVN-Version

  4. Wenn die Versionsinformationen für Maven, Java usw. angezeigt werden, kann es losgehen.

  5. Öffnen Sie nun IntelliJIDEA und erstellen Sie ein neues Projekt. Wählen Sie im ersten Fenster Maven aus:

    Teil 4. Maven-Grundlagen – 2
  6. Klicken Sie auf Weiter und füllen Sie das folgende Dialogfeld aus:

    Teil 4. Maven-Grundlagen – 3
  7. Als nächstes erstellen Sie standardmäßig ein Projekt am gewünschten Ort.

    Achten Sie nach der Erstellung des Projekts auf dessen Struktur:

    Teil 4. Maven-Grundlagen – 4
Dies ist die Standardstruktur für ein Maven-Projekt :
  • der Ordner src/main/java enthält Java-Klassen;
  • in src/main/resources – Ressourcen, die unsere Anwendung verwendet (HTML-Seiten, Bilder, Stylesheets usw.);
  • src/test – für Tests.
Achten Sie auch auf die Datei pom.xml . Dies ist die Hauptdatei zur Verwaltung von Maven . Die gesamte Projektbeschreibung finden Sie hier. Es gibt noch nicht allzu viele Informationen, aber wir werden sie jetzt hinzufügen.

Abhängigkeitsmanagement in Maven

Möglicherweise sind Sie auf den Ausdruck „Abhängigkeitsmanager“ oder „Abhängigkeitsmanager“ gestoßen. Maven kann alles. Dank Maven müssen Sie nicht viel Zeit damit verbringen, im Internet nach der benötigten Bibliothek zu suchen, sie herunterzuladen und dann mit dem Projekt zu verbinden: Fügen Sie einfach die benötigte Bibliothek zur Liste der Maven-Abhängigkeiten hinzu. Abhängigkeiten werden im XML-Knoten „Abhängigkeiten“ geschrieben. Angenommen, Sie benötigen die Apache Commons IO-Bibliothek in Ihrem Projekt für eine vereinfachte Arbeit mit Dateien. Um eine Bibliothek hinzuzufügen, schreiben Sie fünf Zeilen in pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Ihre pom.xml sollte nun so aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Erlauben Sie anschließend IntelliJ IDEA, die Abhängigkeit zu importieren (in der unteren rechten Ecke sollte ein Dialogfeld angezeigt werden). Jetzt ist die Bibliothek einsatzbereit:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Alle nachfolgenden Abhängigkeiten sollten ebenfalls in das Tag <dependencies> geschrieben werden. Sie fragen sich vielleicht: Woher wissen Sie, welche Informationen Sie über eine Bibliothek in das <dependency>-Tag aufnehmen müssen? Hier ist alles einfach. In solchen Fällen werden immer drei Parameter angegeben: GroupId, ArtefaktId und Version. Sie können diese Parameter auf zwei Arten herausfinden:
  1. Auf der Website der Bibliothek. Wenn wir Apache Commons IO benötigen, gehen Sie zur offiziellen Website und wählen Sie die Registerkarte Abhängigkeitsinformationen. Alle notwendigen Informationen finden Sie hier – Sie können sie einfach kopieren und zu unserem Abschnitt „Abhängigkeiten“ hinzufügen.

  2. Im Maven-Repository . Geben Sie „Apache Commons io“ in die Suche ein und Sie sehen alle verfügbaren Versionen der Bibliothek. Nachdem Sie die gewünschte Datei ausgewählt haben, kopieren Sie einfach:

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    und zu Ihrer pom.xml hinzufügen.

Arten von Maven-Repositorys

Es lohnt sich, das Maven-Repository noch einmal zu erwähnen, da wir tatsächlich zwei davon auf Ihrem Computer haben – extern (global) und lokal. Alle Bibliotheken, die Sie Ihren Projekten hinzufügen, werden im lokalen Repository gespeichert. Wenn Maven einem Projekt eine erforderliche Abhängigkeit hinzufügt, überprüft es zunächst das lokale Repository auf das Vorhandensein einer solchen Bibliothek und wendet sich erst dann an die externe, wenn es sie dort nicht findet. Wie Sie sehen, können Sie mit Maven Abhängigkeiten hinzufügen, aber das ist noch nicht alles.

Erstellen eines Java-Projekts mit Maven

Für einen Neuling mag diese Funktion sinnlos erscheinen. Warum ist dies erforderlich, wenn es eine IDE gibt? Aber nein! Erstens verfügt der Server, auf dem Sie die Anwendung erstellen müssen, möglicherweise nicht nur über keine Entwicklungsumgebung, sondern auch über eine grafische Oberfläche. Zweitens bewältigt Maven bei großen Projekten die Aufgaben der Projektmontage besser. Lassen Sie uns daher nicht mit dem Warten quälen, sondern betrachten wir den Prozess der Erstellung einer Anwendung mit Maven.

Phasen

Der Prozess der Erstellung einer Anwendung wird als Lebenszyklus eines Maven-Projekts bezeichnet und besteht aus Phasen. Sie können sie in IDEA ansehen, indem Sie oben rechts auf Maven>Beispiel>Lebenszyklus klicken: Teil 4. Maven-Grundlagen – 5Wie Sie sehen, gibt es 9 Phasen:
  1. clean – entfernt alle kompilierten Dateien aus dem Zielverzeichnis (dem Ort, an dem fertige Artefakte gespeichert werden);
  2. Validieren – Überprüfen, ob alle Informationen für die Erstellung des Projekts verfügbar sind;
  3. kompilieren – Dateien mit Quellcode werden kompiliert;
  4. test – Tests werden gestartet;
  5. Paket – kompilierte Dateien werden gepackt (in ein JAR-, WAR-Archiv usw.);
  6. überprüfen – Es werden Prüfungen durchgeführt, um die Bereitschaft der gepackten Datei zu bestätigen.
  7. install – das Paket wird im lokalen Repository abgelegt. Jetzt kann es von anderen Projekten als externe Bibliothek verwendet werden;
  8. Website - Projektdokumentation wird erstellt;
  9. Bereitstellen – Das gesammelte Archiv wird in ein Remote-Repository kopiert.
Alle Phasen werden nacheinander ausgeführt: Sie können beispielsweise mit der vierten Phase erst beginnen, wenn die Phasen 1–3 abgeschlossen sind. Es gibt zwei Möglichkeiten, eine Phase zu starten:
  • über die Kommandozeile:

    mvn-Paket

    Teil 4. Maven-Grundlagen – 6
  • mit Intellij IDEA:

    Teil 4. Maven-Grundlagen – 7

    Vor dem Start des Pakets werden die Validierungs-, Kompilierungs- und Testphasen durchgeführt. Eine Ausnahme bildet die Reinigungsphase. Es empfiehlt sich, es vor jedem neuen Projektaufbau aufzurufen. Phasen können durch Leerzeichen getrennt aufgelistet werden:

    mvn sauberes Paket.

Außerdem hat jede Phase Vor- und Nachphasen: zum Beispiel Pre-Deployment, Post-Deployment, Pre-Clean, Post-Clean, aber sie werden recht selten verwendet. Darüber hinaus hat jede Phase Ziele. Standardziele sind standardmäßig enthalten, zusätzliche werden durch Maven-Plugins hinzugefügt. Manchmal müssen Sie in einer Phase zusätzliche Funktionen ausführen. Dafür gibt es Maven-Plugins. Die Liste der offiziellen Plugins finden Sie auf der Maven-Website . Beachten Sie jedoch, dass es immer noch viele benutzerdefinierte Plugins gibt, die auf Ressourcen von Drittanbietern zu finden sind. Wenn es einen exotischen Bedarf gibt, haben Sie natürlich immer die Möglichkeit, ein solches Plugin selbst zu schreiben .

Plugins

Um ein Maven-Plugin zu einem Projekt hinzuzufügen, muss seine Beschreibung, ähnlich wie bei Abhängigkeiten, in pom.xml in den Tags <build> und <plugins> platziert werden. Beispielsweise benötigen wir ein Plugin, um zu überprüfen, ob alle unsere externen Bibliotheken die neuesten Versionen verwenden. Nach einer kleinen Suche im Internet finden Sie dieses Plugin mit einer Gebrauchsanweisung. Legen wir die Gruppen-ID, die Artefakt-ID und die Version fest. Schreiben wir auf, welche Ziele er in welcher Phase erreichen muss. In unserem Fall ist die Abhängigkeitsprüfung in der aktuellen pom.xml auf die Validierungsphase eingestellt. Nun sieht unsere „Erinnerung“ so aus:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Wir können weiterhin an unserem Projekt arbeiten. Versuchen wir jedoch, die Apache Commons IO-Version auf 2.0 zu ändern und mit der Erstellung des Projekts zu beginnen. Wir bekommen: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] Hier haben wir einen Build-Fehler, der durch das Plugin verursacht wurde. Die Fehlermeldung besagt, dass wir Version 2.0 verwenden, wenn 2.6 verfügbar ist. Im Allgemeinen ist Maven ein sehr nützliches Werkzeug. Die Bedienung mag auf den ersten Blick schwierig erscheinen, aber üben Sie, erstellen Sie Ihre Projekte unter Maven, und nach einer Weile werden Sie mit dem Ergebnis sehr zufrieden sein. In diesem Artikel wurde bewusst auf viele Details zu Maven verzichtet – wir haben uns auf das Wesentliche konzentriert. Der Perfektion sind jedoch keine Grenzen gesetzt: Mehr über Maven können Sie auf der offiziellen Website des Produkts lesen . Teil 5. Servlets. Schreiben einer einfachen Webanwendung Teil 6. Servlet-Container Teil 7. Einführung in das MVC-Muster (Model-View-Controller) Teil 8. Schreiben einer kleinen Spring-Boot-Anwendung
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION