Apache Maven – in Kürze
Wenn Sie ein Java-Entwickler sind, umfassen Ihre täglichen Aktivitäten während der Arbeit an Ihrem Projekt Folgendes: Schreiben des Codes, Kompilieren des Codes, Testen des Codes, Verpacken in Form eines Artefakts wie einer JAR- oder WAR-Datei und die anschließende Bereitstellung Artefakt auf einen Webserver.
Es gibt viele Aufgaben, die Sie manuell erledigen müssen, und natürlich können Sie diese Aufgaben mithilfe einer Bibliothek namens Apache Maven automatisieren
In diesem Artikel erfahren Sie, was Apache Maven ist und wie Sie es effektiv zum Erstellen und Verwalten Ihrer Java-Projekte nutzen können
Lassen Sie uns zunächst die Grundlagen von Maven verstehen
Was ist Maven?
Maven ist ein Projektmanagement-Tool, das entwickelt wurde, um bei der Verwaltung von Projekten zu helfen, die mit JVM-Sprachen wie Java und Scala entwickelt wurden. Zu den Hauptaufgaben von Projektmanagement-Tools gehören:
- Erstellen des Quellcodes
- Testen des Quellcodes
- Verpackung in Glas, Warte oder Ähre
- Generieren von Java-Dokumenten
- Abhängigkeiten verwalten
Lassen Sie uns nun fortfahren und sehen, wie Sie Maven auf unserem Computer installieren.
- Öffnen Sie https://maven.apache.org/ in Ihrem Browser
- Gehen Sie zum Download-Bereich, laden Sie den ZIP-Ordner der neuesten Maven-Version herunter und extrahieren Sie ihn
- Legen Sie die Umgebungspfadvariable fest. Fügen Sie JAVA_HOME und MAVEN_HOME hinzu
- Fügen Sie den Maven-Pfad in der Umgebungsvariablen hinzu. Beispiel: F:\Apache-maven-3.6.3-bin\Apache-maven-3.6.3\bin
Maven-Repository:
Maven Repository ist ein Verzeichnis gepackter JAR-Dateien mit pom.xml. Maven sucht nach Abhängigkeiten in den Repositorys. Es gibt drei Arten von Maven-Repositorys.
- Lokales Repository
- Zentrales Repository
- Remote-Repository
Außerdem können wir den Speicherort des lokalen Repositorys in der Datei „settings.xml“ ändern, die sich in MAVEN_HOME/conf/settings.xml befindet. Beispiel: E:\apache-maven-3.1.1\conf\settings.xml
<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>
-->
</settings>
<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>e:/mavenlocalrepository</localRepository>
</settings>
Das zentrale Repository enthält viele gängige Bibliotheken, die über diese URL angezeigt werden könnenhttp://search.maven.org/#browse.
Maven Remote Repository: Das Maven Remote Repository befindet sich im Web. Einige der Bibliotheken können im zentralen Repository fehlen, z. B. die JBoss-Bibliothek usw., daher müssen wir ein Remote-Repository in der Datei pom.xml definieren.
Struktur des Maven-Projekts:
Lassen Sie uns nun die Struktur des Maven-Projekts verstehen. Wenn Sie ein Maven-Projekt erstellen, sehen Sie einen Ordner mit dem Namen
- src – Quelle – das ist die Wurzel unseres Anwendungsquellcodes und des Anwendungseinheitentests
- src/main/java – enthält den Quellcode unserer Anwendung. Der gesamte Produktionscode, den wir in unsere Anwendung schreiben, befindet sich in diesem Ordner
- src/main/resources – Hier speichern wir alle statischen Dateien, die wir in unserem Projekt verwenden. Beispiel application.properties , XML-Dateien, CSV-Dateien usw
- Wenn Sie eine Webanwendung entwickeln, befinden sich alle HTML- und Javascript-Dateien in diesem Ordner
- src/test/java – hier schreiben wir den Unit-Test und den Integrationstest für unsere Anwendung
- pom.xml – es enthält die Metadaten der Projektabhängigkeiten
- target – in diesem Ordner speichert Maven alle kompilierten Java-Klassendateien
POM enthält die Metadaten des Projekts und ist auch für die Verwaltung der Abhängigkeiten zur Konfiguration von Plugins verantwortlich, was uns bei der Automatisierung vieler sich wiederholender Aufgaben hilft. Hier ist die grundlegende pom.xml
<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>com.maven.application</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
- Modellversion – Die Modellversion wird immer auf 4.0.0 gesetzt, es sei denn, Sie ändern sie in eine andere Maven-Version. Zum Beispiel höhere Versionen über 3.0
- Einfache POM-Datei
- Super Pom-Datei
- Effektive POM-Datei
Super-POM-Datei: Sie finden die Super-POM-Datei im Maven-Installationsverzeichnis unter dem Pfad lib. Und in der JAR-Datei – maven-model-builder – finden wir ein Paket namens org
Effektive POM-Datei: Eine effektive POM-Datei ist nichts anderes als eine Kombination aus einfachen POM- und Super-Pom-Dateien. Dies ist lediglich eine Möglichkeit, alle Informationen der pom.xml-Dateien an einem Ort zu überprüfen. Um einen Blick in die effektive POM-Datei zu werfen, gehen Sie zum Maven-Terminaltyp
mvn-help: effective-pom
Maven hat zwei Arten von Abhängigkeiten
- Snapshot-Abhängigkeit: Eine Snapshot-Abhängigkeit bezeichnet ein Projekt, das sich in der aktiven Entwicklung befindet und instabil ist.
- Release-Abhängigkeit: Sobald das Projekt abgeschlossen ist, wird es veröffentlicht
Wir können die Sichtbarkeit der Maven-Abhängigkeit mithilfe von Abhängigkeitsbereichen steuern. Es gibt 5 Arten von Zielfernrohren
- Kompilieren: Dies ist der Standardbereich für alle Abhängigkeiten und die mit „Kompilieren“ markierten Abhängigkeiten sind im Klassenpfad des Projekts verfügbar
- Bereitgestellt: Eine Abhängigkeit, deren bereitgestellter Bereich zur Laufzeit entweder von JDK oder dem Webserver bereitgestellt wird
- Laufzeit: Wie der Name schon sagt, ist die mit „Runtime“ gekennzeichnete Abhängigkeit nur zur Laufzeit verfügbar, nicht jedoch zur Kompilierungszeit.
- Test: Diese Abhängigkeiten sind nur zum Zeitpunkt des Schreibens und Ausführens des Tests verfügbar.
- Systembereich: Dies ähnelt dem bereitgestellten Bereich, der einzige Unterschied besteht jedoch darin, dass wir explizit erwähnen, wo wir die Abhängigkeit im System finden können. Anstatt dass JDK oder Webserver diese Abhängigkeit zur Laufzeit bereitstellen, stellen wir den Systempfad bereit, unter dem Maven diese Abhängigkeit finden kann. Den Pfad können wir über den Systempfad bereitstellen
Der Maven-Build-Lebenszyklus ist in drei verschiedene Schritte unterteilt:
- Standard – als Teil dieses Schritts führt Maven viele Aufgaben aus,
- Maven liest die pom.xml und validiert, ob wir gültiges XML haben oder nicht.
- Dann kompiliert Maven unseren Quellcode, erstellt die Klassendateien und speichert sie im Zielordner.
- Dann führt Maven in der Testphase als Teil des Tests den Unit-Test innerhalb des Projekts durch.
- Paket – als Teil des Pakets packt Maven den Quellcode in ein Artefakt unserer Wahl wie JAR- oder WAR- oder Ear- oder ZIP-Dateien
- Integrationstest – wenn unser Projekt Integrationstests enthält und ausgeführt wird
- überprüfen – Maven prüft, ob der Integrationstest, der in der vorherigen Phase ausgeführt wird, erfolgreich ist oder nicht
- install – Maven installiert das erstellte Paket im lokalen Repository
- Deploy – Nach der Installation wird Maven in einem Remote-Repository bereitgestellt.
2. Bereinigen: In diesem Schritt werden hauptsächlich die kompilierten Java-Klassen oder die generierten Metadaten bereinigt. Beispiel: MVN-Neuinstallation
3. Site: Diese ist für die Erstellung der Java-Dokumentation verantwortlich, die in unserem Projekt vorhanden ist.
Maven vereinfacht den Build-Prozess erheblich. Ich hoffe, Sie haben etwas über Apache Maven gelernt und einige wichtige Punkte verstanden.
Vielen Dank, dass Sie den Artikel gelesen haben. Bitte klatschen, teilen und kommentieren. Es wird mich ermutigen, mehr solcher Artikel zu schreiben. Teilen Sie uns Ihre wertvollen Vorschläge mit, ich freue mich über Ihr ehrliches Feedback!!!
Am häufigsten gestellte Java8-Stream-basierte Interviewfrage – Teil 1 Der einfachste Weg, auf eine Datenbank in JAVA zuzugreifen. Mehrere Ausnahmen bei der Java- Codierung abfangen: Finden Sie die n-te Fibonacci-Zahl in JavaScript. Echte Websites, die 50 bis 100 US-Dollar pro Stunde für das Korrekturlesen von Büchern zahlen, Threading und Multiprocessing in Python erklärt
![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































