Java – Maven, POM, Maven-Installation, Maven-Kern, Befehl

1. Maven

Maven ist ein automatisiertes Build-Tool, das von der Apache Software Foundation verwaltet wird.Die ursprüngliche Bedeutung des Wortes Maven ist: Experte, Experte. Basierend auf dem Konzept des Projektobjektmodells ( Project Object Model , Abkürzung: POM ) kann Maven die Konstruktions-, Reporting- und Dokumentationsschritte eines Projekts mit einer zentralen Information verwalten.

Maven ist ein Projektmanagement-Tool, das Abhängigkeiten für Java-Projekte erstellen und verwalten kann

Offizielle Maven-Website Adresse der offiziellen Maven-Website

maven Zentrallager maven Zentrallager

1. Die Rolle von Maven

(1) Maven kann Verweise zwischen mehreren Projektmodulen integrieren und Projekte auch nach Geschäft und Funktionen aufteilen

(2) Maven kann JAR-Dateien und Quellcode automatisch herunterladen; JAR-Dateien und JAR-Versionen verwalten (automatische Versionskompatibilität)

(3) Verwalten Sie andere JAR-Pakete, von denen das JAR-Paket abhängt, laden Sie das Projekt automatisch herunter und importieren Sie es

(4) Kompilieren Sie das Programm, kompilieren Sie Java in die Klasse

(5) Testcode

(6) Dateien packen, um eine JAR-Datei (Java-Projekt) oder eine WAR-Datei (Webprojekt) zu bilden

(7) Bereitstellungsprojekt

2. Erstellen Sie das Projekt

(1) Cleanup: Löschen Sie frühere Kompilierungsergebnisse, um die Neukompilierung vorzubereiten

(2) Kompilierung: Kompilieren Sie das Java-Quellprogramm (.java-Datei) in eine Bytecode-Datei (.class-Datei)

(3) Test: Testen Sie die Schlüsselpunkte im Projekt, um die Korrektheit der Schlüsselpunkte im iterativen Entwicklungsprozess des Projekts sicherzustellen

(4) Bericht: Aufzeichnung und Anzeige der Testergebnisse in einem Standardformat nach jedem Test

(5) Packen: Packen Sie ein Projekt, das viele Dateien enthält, in eine komprimierte Datei für die Installation oder Bereitstellung. (Das Java-Projekt entspricht dem jar-Paket und das Web-Projekt dem war-Paket)

(6) Installation: In der Maven-Umgebung bezieht sich dies speziell auf die Installation des verpackten Ergebnisses – JAR-Paket oder Kriegspaket im lokalen Warehouse

(7) Bereitstellung: Bereitstellen des gepackten Ergebnisses im Remote-Warehouse oder Bereitstellen des Kriegspakets zum Ausführen auf dem Server

Zweitens, Maven-Installationsumgebung

1. Laden Sie die alte Version von der offiziellen Maven-Website herunter, Sie können das Dokument anzeigen, die entsprechende JDK-Version

Maven alte Version herunterladen

2. Legen Sie das heruntergeladene Maven-komprimierte Paket unter dem angegebenen Pfad ab und dekomprimieren Sie es (fügen Sie kein Chinesisch in den Pfad ein).

Es gibt hauptsächlich zwei Verzeichnisse wie folgt

bin : das Ausführungsprogramm, hauptsächlich mvn.cmd
conf : die Konfigurationsdatei settings.xml des Maven-Tools selbst

3. Konfigurieren Sie Maven-Umgebungsvariablen

(1) Erstellen Sie in den Umgebungsvariablen des Systems einen neuen Systemvariablennamen von M2_HOME, und der angegebene Wert ist das Installationsverzeichnis des Maven-Tools, das Verzeichnis vor bin

Beispiel: M2_HOME=D:\JDK\apache-maven-3.6.3

 (2) Fügen Sie dann M2_HOME zum Pfad hinzu und fügen Sie %M2_HOME%\bin vor allen Pfaden hinzu;

Führen Sie in der neuen Befehlszeile den Befehl mvn -v aus

mvn -v 

Der erste Lauf kann einen Fehler wie folgt melden:

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

(3) Erstellen Sie hier eine Systemvariable JAVA_HOME 

Hinweis: JAVA_HOME muss konfiguriert werden, um den jdk-Pfad anzugeben

Wenn java.exe verwendet wird, wenn Maven ausgeführt wird, kann Maven nicht aufgerufen werden, wenn es nicht konfiguriert ist, aber wenn es konfiguriert ist, kann es aufgerufen werden

Schließen Sie zu diesem Zeitpunkt das DOS-Fenster, öffnen Sie es erneut und führen Sie den Befehl mvn -v erneut aus. Der folgende Inhalt wird angezeigt, Maven ist korrekt installiert und konfiguriert

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\JDK\apache-maven-3.6.3\bin\..
Java version: 1.8.0_291, vendor: Oracle Corporation, runtime: D:\JDK\java
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

4. Führen Sie den Befehl mvn compile aus

Wenn der Befehl mvn compile zum ersten Mal ausgeführt wird, werden alle Java-Dateien im Verzeichnis src/main kompiliert

(1) Führen Sie den Download-Vorgang aus

Die vom Maven-Tool ausgeführten Operationen erfordern viele Plug-Ins (Java-Klassen – JAR-Dateien), um abgeschlossen zu werden

(2) Laden Sie das JAR-Paket herunter (Plugin)

(3) Der Speicherort des heruntergeladenen JAR-Pakets

Standard-Repository (natives Repository):

C:\Users\ (Benutzername für die Anmeldung am Betriebssystem) Administrator\.m2\repository

Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter-2.0.9.pom

https://repo.maven.apache.org : die Adresse des zentralen Warenlagers

Führen Sie mvn compile aus, das Ergebnis ist, dass das Zielverzeichnis (Ergebnisverzeichnis) im Stammverzeichnis des Projekts generiert wird, das von maven kompilierte Java-Programm und die endgültigen Klassendateien im Zielverzeichnis abgelegt werden

5. Legen Sie das Home-Verzeichnis der Maven-Installation, die Datei setting.xml und den lokalen Warehouse-Speicherort fest

(1) Legen Sie den Speicherort des Verzeichnisses fest, in dem Ressourcen auf diesem Computer gespeichert sind (legen Sie das lokale Warehouse fest).

Lagerort des Standardlagers (lokales Lager):

C:\Users\ (Benutzername für die Anmeldung am Betriebssystem) Administrator\.m2\repository

Es kann in den eingestellten Zielpfad kopiert werden, z. B. in den folgenden Pfad kopieren

D:\XXXX\maven-work\repository (Speicherort des PCs)

(2) Ändern Sie zuerst die Konfigurationsdatei von Maven, Maven-Installationsverzeichnis \conf\settings.xml (z. B.: D:\XXXX\apache-maven-3.6.3\conf\settings.xml (Speicherort des Personal Computers)). Sicherungseinstellungen .xml

(3) Bearbeiten Sie die Datei settings.xml, ändern Sie <localRepository>, um Ihr Verzeichnis anzugeben (verwenden Sie nicht das chinesische Verzeichnis).

        D:\XXXX\maven-work\repository (Speicherort des PCs)

Öffnen Sie die Datei settings.xml und finden Sie in Zeile 53 die ursprüngliche Konfiguration wie folgt

 Wir kopieren das Tag <localRepository> und ändern den Pfad im Tag in den Repository-Ordner, den wir vom Standardlaufwerk C kopiert haben

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

  <localRepository>D:\JDK\maven-work\repository</localRepository>

3. Maven-Kern 

1. Vereinbarte Verzeichnisstruktur

Das Maven-Projekt übernimmt das Prinzip " Konvention vor Konfiguration ", das Verzeichnis und der Dateispeicherort des Maven-Projekts sind alle festgelegt

Im Allgemeinen Konventionen > Konfiguration > Kodierung

Maven verwendet standardmäßig eine Reihe von Verzeichnisstrukturen. Nachdem ein Projekt über Maven erstellt wurde, wird die Verzeichnisstruktur des Projekts unter Verwendung dieser Verzeichnisstruktur als Vorlage erstellt. Obwohl Maven viele Vorlagen bereitstellt, ist die grundlegende Verzeichnisstruktur festgelegt

Es gibt drei Hauptdateien im Stammverzeichnis

src,Ziel,pom.xml

Hello        根目录(工程名)
|---src      源代码          
|---|---main    主程序
|---|---|---java    主程序的 java 源码
|---|---|---resources    主程序的配置文件
|---|---|---webapp  (web项目)该目录是web应用源代码目录,如html文件和web.xml等都在该目录下
|---|---|---filters 项目的资源过滤文件所在的目录
|---|---test    测试程序
|---|---|---java    测试程序的 java 源码
|---|---|---resources    测试程序的配置文件
|---|---|---filters 测试相关的资源过滤文件所在的目录
|---target    存放编译、打包后的输出文件
|---pom.xml    Maven 工程的核心配置文件

Wir können das DOS-Befehlsfenster oder Windows PowerShell eingeben

tree 根目录文件名

Wie folgt, Baum Hallo 

  

2.POM

POM ( Project Object Model, Projektobjektmodell ) ist die grundlegende Arbeitseinheit des Maven-Projekts. Es ist eine XML-Datei ( pom.xml ), die die grundlegenden Informationen des Projekts enthält und verwendet wird, um zu beschreiben, wie das Projekt aufgebaut ist. Projektabhängigkeiten deklarieren usw.

Beim Ausführen einer Aufgabe oder eines Ziels sucht Maven im aktuellen Verzeichnis nach einem POM. Es liest das POM, ruft die erforderlichen Konfigurationsinformationen ab und führt das Ziel aus. Maven verwendet ein Projekt als Modell. Steuern Sie den Prozess von Maven-Building-Projekten und verwalten Sie JAR-Abhängigkeiten

 Zusatzetikett:

1. <scope>-Tag: abhängiger Bereich

Die Bereichswerte sind „compile“, „test“, „provided “ und der Standardwert ist „compile“.

(1) Bereichsabhängigkeit kompilieren :

ob es für das Hauptprogramm gilt: gültig
ob es für das Testprogramm gilt: gültig
ob es an der Verpackung teilnimmt: nimmt teil
ob es am Einsatz teilnimmt: nimmt teil
Typisches Beispiel: Federkern

(2) Der bereitgestellte Umfang hängt ab von:

Ob es für das Hauptprogramm gültig ist: gültig
Ob es für das Testprogramm gültig ist: gültig
Ob es an der Paketierung teilnehmen soll: nicht beteiligt
Ob es an der Bereitstellung teilnehmen soll: nicht beteiligt
Typisches Beispiel: server-api.jar

(3) Prüfumfang abhängig von:

Ob es für das Hauptprogramm gültig ist: ungültig
Ob es für das Testprogramm gültig ist: gültig
Ob es an der Paketierung teilnehmen soll: nicht beteiligt
Ob es an der Bereitstellung teilnehmen soll: nicht beteiligt
Typisches Beispiel: junit

wird hauptsächlich für das Web-Engineering bereitgestellt

Die Kompilierungs-, Test-, Paketierungs-, Installations- und Bereitstellungsprozesse (Phasen) von Maven-Build-Projekten funktionieren

Wie folgt, ist der Abhängigkeitsbereich von junit test

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
</dependency>

2. Tag <properties>: Attributeinstellung

[1] Gemeinsame Eigenschaftseinstellungen in maven

<properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 项目构建使用的编码,避免中文乱
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 生成报告的编码
     <maven.compiler.source>1.8</maven.compiler.source> 源码编译 jdk 版本
     <maven.compiler.target>1.8</maven.compiler.target> 运行代码的 jdk 版本
 </properties>

[2] Globale Variablen setzen

In der pom.xml-Datei von Maven wird <properties> verwendet, um globale Variablen zu definieren

Der Wert der Variablen wird im POM in Form von ${property_name} referenziert und der Labelname setzt sich in der Regel aus Projektname + Feldversion zusammen

Ein einzelnes Wort kann direkt XX.Version genannt werden, und mehrere Wörter können durch eine horizontale Linie XX-XX-Version getrennt werden

globale Variablen definieren

<properties>
    <dubbo.version>2.6.2</dubbo.version>
    <spring-context-version>4.3.10.RELEASE</spring-context-version>
</properties>

 beziehen sich auf globale Variablen

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>${dubbo.version}</version>
</dependency>


<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring-context-version}</version>
</dependency>

3. Tag <resource>: Ressource, Tag <build>: build

Alle *.java-Dateien in den Verzeichnissen src/main/java und src/test/java werden in der comile- bzw. test-comiple-Phase kompiliert, und die Kompilierungsergebnisse werden in target/classes und target/test-classes abgelegt Verzeichnisse, aber andere Dateien in diesen beiden Verzeichnissen werden ignoriert.Wenn Sie das Dateipaket im Verzeichnis src in das Verzeichnis target/classes legen müssen, wird es Teil der Ausgabe-JAR sein. Der Speicherort der Ressourcendatei muss angegeben werden. Fügen Sie den folgenden Inhalt in das <buid>-Tag ein

<build>
    <resources>
         <resource>
             <directory>src/main/java</directory><!--所在的目录-->
             <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
                 <include>**/*.properties</include>
                 <include>**/*.xml</include>
             </includes>
             <!-- filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
             <filtering>false</filtering>
         </resource>
    </resources>
</build>

 3. Koordinaten (gav)

Maven verwaltet jedes Plug-In als Projekt im Warehouse und verwendet einen Satz von (drei) Vektorkoordinaten, um die Koordinaten darzustellen. Ein Maven-Projekt kann sich eindeutig im Warehouse befinden

groupId: Organisationsname, normalerweise die umgekehrte Reihenfolge des Domänennamens des Unternehmens oder der Organisation + Projektname

artifactId: Modulname, normalerweise der Projektname

Version: Versionsnummer

Die Position des Projekts im Warehouse wird durch Koordinaten bestimmt: groupId, artifactId und version bestimmen den Pfad des Projekts im Warehouse, artifactId und version bestimmen den Namen des jar-Pakets

4. Abhängigkeitsmanagement (Abhängigkeit)

Verwalten Sie JAR-Dateien, die von Projekten verwendet werden können

Abhängigkeitsbereich: Kompilieren, Testen, Bereitstellen, Kompilieren wird standardmäßig verwendet

Notiz:

Alle im Projekt verwendeten Abhängigkeiten (JAR) müssen sich im lokalen Warehouse befinden; keine müssen über Maven heruntergeladen werden, einschließlich der bereitgestellten müssen heruntergeladen werden 

5. Lagerverwaltung

Das Maven-Repository kann uns helfen, seine Dateien (hauptsächlich JAR) zu verwalten, wo alle JARs (WAR, ZIP, POM) abgelegt werden

1. Maven-Lagerhaltung

        [1] Maven Plug-Ins, Plug-Ins sind auch einige Jars, diese Jars können bestimmte Funktionen vervollständigen

        [2] Module unserer eigenen Entwicklungsprojekte

        【3】Jar-Pakete von Frameworks oder Tools von Drittanbietern

2. Lagerklassifizierung

    Lokales Lager: ein Ordner auf dem PC, in dem verschiedene Gläser gespeichert sind

        Standardmäßig in ~\.m2\repository gespeichert

    Remote Warehouse, ein Warenlager auf einem Internetserver, der nur über das Internet genutzt werden kann

        [1] Central Warehouse, das maßgebendste, ein zentralisiertes Warehouse, das von allen Entwicklern gemeinsam genutzt wird        

           https://repo.maven.apache.org : die Adresse des zentralen Warenlagers

        [2] Das Spiegelbild des Zentrallagers: Es ist das Backup des Zentrallagers Auf allen Kontinenten sind wichtige Städte Spiegelbilder

        【3】Private Server werden innerhalb des Unternehmens und im lokalen Netzwerk verwendet, nicht für den externen Gebrauch.

6. Lebenszyklus

Der Prozess des Erstellens eines Projekts mit dem Maven-Tool ist der Lebenszyklus

Der Prozess, in dem Maven ein Projekt erstellt, bereinigt, kompiliert, getestet, gemeldet, gepackt, installiert und bereitgestellt wird

(1) mvn kompilieren        

Kompilieren Sie Java im Verzeichnis main/java/ in eine Klassendatei, kopieren Sie die Klasse in das Verzeichnis target/classes
und kopieren Sie alle Dateien im Verzeichnis main/resources in das Verzeichnis target/classes

(2) mvn testkompilieren         

Kompilieren Sie das Testprogramm (im aktuellen Verzeichnis wird ein Zielverzeichnis erstellt, in dem die nach dem Kompilieren des Testprogramms generierten Bytecode-Dateien gespeichert werden)

(3) mvn-Test         

Test (ein Verzeichnis todsichere Berichte wird generiert, um die Testergebnisse zu speichern)

(4) mvn-Paket        

Packen des Hauptprogramms (kompilieren, kompilieren und testen, testen und packen Sie das Hauptprogramm, um ein JAR-Paket oder ein WAR-Paket gemäß der pom.xml-Konfiguration zu generieren)

(5) mvn installieren         

Installieren Sie das Hauptprogramm (dieses Projekt wird gemäß den Koordinaten dieses Projekts im lokalen Lager gepackt und gespeichert)

(6) mvn bereitstellen         

Bereitstellen des Hauptprogramms (dieses Projekt wird gepackt, gemäß den Koordinaten dieses Projekts in der lokalen Bibliothek gespeichert und auch im privaten Server-Warehouse gespeichert und automatisch im Webcontainer bereitgestellt)

(1) Nach dem Packen mit mvn-Paket wird ein Projektname-Version-JAR-Paket im Zielverzeichnis des Projektverzeichnisses generiert

(2) Kopieren Sie es in die von Ihnen selbst kopierte lokale Maven-Bibliothek, folgen Sie dem Projektpfad com.Unternehmensorganisationsname.Projektname

 (3) Zeigen Sie die Koordinateninformationen (gav) unter der Datei pom.xml des aktuell gepackten Projekts an

 

(4) Kopieren Sie es in das Projekt, das auf Referenzen angewiesen ist 

(5) Kompilieren Sie den Test und bestehen Sie ihn

7. Plugins

Wenn der maven-Befehl ausgeführt wird, ist es das Plug-in, das die Funktion tatsächlich vervollständigt. Das Plug-in besteht aus einigen JAR-Dateien und einigen Klassen

8. Erbschaft

9. Polymerisation

Supongo que te gusta

Origin blog.csdn.net/MinggeQingchun/article/details/122560887
Recomendado
Clasificación