CodeGym /Java-Blog /Random-DE /Teil 4. Die Grundlagen von Maven
John Squirrels
Level 41
San Francisco

Teil 4. Die Grundlagen von Maven

Veröffentlicht in der Gruppe Random-DE
Dieses Material ist Teil der Reihe „Einführung in die Unternehmensentwicklung“. Vorherige Artikel: Teil 4. Die Grundlagen von Maven – 1Maven ist ein Tool zum Verwalten und Erstellen von Projekten – ein hilfreicher Assistent eines Java-Programmierers. Es erleichtert Entwicklern das Leben in jeder Phase der Arbeit: von der Erstellung der Projektstruktur über die Anbindung der erforderlichen Bibliotheken bis hin zur Bereitstellung des Produkts auf dem Server. Sie müssen Maven verwenden, wenn Sie mit einem beliebigen Framework arbeiten. Werfen wir heute einen Blick auf die Hauptfunktionen und erfahren, wie man sie nutzt.

Schritt-für-Schritt-Installation von Maven

  1. Zuerst müssen wir Maven installieren. Laden Sie es über diesen Link herunter .

  2. Als nächstes entpacken Sie das heruntergeladene Archiv und setzen die Umgebungsvariable M2_HOME auf den Speicherort des entpackten Archivs. Beispiel: C:\\Programme\\maven\\

  3. Um sicherzustellen, dass alles installiert ist, führen Sie Folgendes in der Befehlszeile aus:

    mvn-Version

  4. Wenn die Versionsinformationen für Maven, Java usw. angezeigt werden, ist alles startklar.

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

    Teil 4. Die Grundlagen von Maven – 2
  6. Klicken Sie auf „Weiter“ und füllen Sie das angezeigte Fenster aus:

    Teil 4. Die Grundlagen von Maven – 3
  7. Erstellen Sie dann wie gewohnt ein Projekt an der gewünschten Stelle.

    Beachten Sie nach der Erstellung des Projekts dessen Struktur:

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

Verwalten von Abhängigkeiten in Maven

Möglicherweise ist Ihnen der Begriff „Abhängigkeitsmanager“ schon einmal begegnet. Maven weiß, wie man Abhängigkeiten verwaltet. Dank Maven müssen Sie nicht viel Zeit damit verbringen, im Internet nach einer benötigten Bibliothek zu suchen, sie herunterzuladen und sie dann mit Ihrem Projekt zu verbinden. Stattdessen fügen Sie einfach die erforderliche Bibliothek zur Liste der Abhängigkeiten in Maven hinzu.

Abhängigkeiten werden im Abhängigkeitsknoten der Datei pom.xml angegeben

Nehmen wir an, Sie benötigen die Apache Commons IO-Bibliothek in Ihrem Projekt, um die Arbeit mit Dateien zu vereinfachen. Um eine Bibliothek hinzuzufügen, schreiben wir fünf Zeilen in pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Jetzt sollte Ihre pom.xml-Datei 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 müssen ebenfalls in das Tag geschrieben werden <dependencies>. Möglicherweise fragen Sie sich, wie Sie die Informationen über die Bibliothek herausfinden, die Sie im <dependency>Tag angeben müssen. Das ist einfach. Es müssen immer drei Parameter festgelegt werden: „groupId“, „artifactId“ und „version“. Es gibt zwei Möglichkeiten, diese Parameter zu bestimmen:
  1. Auf der Website der Bibliothek. Wenn wir die Apache Commons IO-Bibliothek benötigen, gehen wir auf die offizielle Website und wählen die Registerkarte „Abhängigkeitsinformationen“. Alle notwendigen Informationen finden Sie hier – Sie können sie einfach kopieren und dem <dependencies>Knoten hinzufügen.

  2. In einem Maven-Repository . Geben Sie „Apache Commons io“ in die Suchleiste ein und Sie sehen alle verfügbaren Versionen der Bibliothek. Nachdem Sie das richtige ausgewählt haben, kopieren Sie einfach Folgendes:

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

    und fügen Sie es Ihrer pom.xml hinzu.

Arten von Maven-Repositorys

Es lohnt sich für uns, die Maven-Repositorys noch einmal zu erwähnen, da wir tatsächlich zwei davon haben: ein Remote- Repository (zentrales Repository) und ein lokales Repository (auf Ihrem Computer). Alle Bibliotheken, die Sie Ihren Projekten hinzufügen, werden im lokalen Repository gespeichert. Wenn Maven einem Projekt eine erforderliche Abhängigkeit hinzufügt, prüft es zunächst, ob die Bibliothek bereits im lokalen Repository vorhanden ist. Es greift nur dann auf das Remote-Repository zu, wenn es die Bibliothek nicht lokal 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 Anfänger mag diese Möglichkeit sinnlos erscheinen. Warum brauchen wir das, wenn wir eine IDE haben? Lassen Sie mich erklären. Erstens verfügt der Server, auf dem Sie Ihre Anwendung erstellen müssen, möglicherweise weder über eine Entwicklungsumgebung noch über eine grafische Oberfläche. Zweitens gelingt es Maven bei großen Projekten besser, das Projekt aufzubauen. Daher betrachten wir ohne Umschweife 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. Die Grundlagen von Maven – 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 – prüft, ob alle zum Erstellen des Projekts erforderlichen Informationen vorhanden sind
  3. kompilieren – kompiliert Quellcodedateien
  4. test – startet Tests
  5. Paket – verpackt kompilierte Dateien (in einem JAR-, WAR- usw.-Archiv)
  6. überprüfen – prüft, ob die gepackte Datei bereit ist
  7. install – platziert das Paket im lokalen Repository. Jetzt kann es von anderen Projekten als externe Bibliothek verwendet werden
  8. site – erstellt Projektdokumentation
  9. Deploy – kopiert das erstellte Archiv in das Remote-Repository
Alle Phasen werden nacheinander durchgeführt: Beispielsweise kann die vierte Phase erst gestartet werden, wenn die Phasen 1-3 abgeschlossen sind. Es gibt zwei Möglichkeiten, eine Phase zu starten:
  • über die Befehlszeile:

    mvn-Paket

    Teil 4. Die Grundlagen von Maven – 6
  • mit IntelliJ IDEA:

    Teil 4. Die Grundlagen von Maven – 7

    Bevor die Paketphase beginnt, werden die Validierungs-, Kompilierungs- und Testphasen durchgeführt. Eine Ausnahme bildet die Reinigungsphase. Es empfiehlt sich, diese Phase vor jedem Build des Projekts auszuführen. Sie können mehrere Phasen auflisten und diese durch Leerzeichen trennen:

    mvn sauberes Paket.

Außerdem hat jede Phase Vor- und Nachphasen: zum Beispiel Pre-Deployment, Post-Deployment, Pre-Clean, Post-Clean usw., aber sie werden recht selten verwendet. Darüber hinaus hat jede Phase Ziele. Standardziele sind standardmäßig festgelegt. Zusätzliche Ziele werden durch Maven-Plugins hinzugefügt. Manchmal müssen Sie während einer Phase zusätzliche Funktionen ausführen. Dafür gibt es Maven-Plugins. Eine Liste der offiziellen Plugins finden Sie auf der Maven-Website . Sie sollten jedoch wissen, dass es viele benutzerdefinierte Plugins gibt, die auf Websites von Drittanbietern zu finden sind. Und wenn ein exotischer Bedarf besteht, können Sie natürlich jederzeit selbst ein benutzerdefiniertes Plug-In schreiben .

Plugins

Um dem Projekt ein Maven-Plugin hinzuzufügen, müssen wir seine Beschreibung zur pom.xml-Datei hinzufügen und dabei die Tags <build>und verwenden <plugins>, ähnlich wie wir Abhängigkeiten hinzugefügt haben. Angenommen, wir benötigen ein Plugin, um zu überprüfen, ob wir die neueste Version aller unserer externen Bibliotheken verwenden. Nachdem Sie ein wenig im Internet gesucht haben, konnten Sie dieses Plugin und Anweisungen zu seiner Verwendung finden. Legen wir die Gruppen-ID, die Artefakt-ID und die Version fest. Wir geben an, welche Ziele das Plugin in welcher Phase erfüllen muss. In unserem Fall ist die Abhängigkeitsprüfung in der aktuellen pom.xml so eingestellt, dass sie während der Validierungsphase erfolgt. Jetzt sieht unsere pom.xml-Datei 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 konnten weiter an unserem Projekt arbeiten. Versuchen wir jedoch, die Version von Apache Commons IO auf 2.0 zu ändern und das Projekt zu erstellen. Wir werden .. 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 vom Plugin generierten Build-Fehler. Die Fehlermeldung besagt, dass wir Version 2.0 verwenden, wenn Version 2.6 verfügbar ist. Grundsätzlich ist Maven ein sehr nützliches Werkzeug. Vielleicht erscheint die Anwendung zunächst schwierig, aber üben Sie! Erstellen Sie Ihre Projekte mit Maven und nach einer Weile werden Sie mit dem Endergebnis sehr zufrieden sein. In diesem Artikel wurden bewusst viele Details über Maven weggelassen – wir haben uns auf das Wesentlichste konzentriert. Der Verbesserung sind jedoch keine Grenzen gesetzt: Mehr über Maven können Sie auf der offiziellen Website lesen . Teil 5. Servlets und die Java-Servlet-API. Schreiben einer einfachen Webanwendung Teil 6. Servlet-Container Teil 7. Einführung in das MVC-Muster (Model-View-Controller).
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION