Maven Erstes Projekt
Maven-Projekt erstellen
Ein Projekt mit einem Maven-Archetyp generieren
Maven bietet Projektvorlagen (Archetypen), um schnell eine Standardprojektstruktur zu generieren. Die am häufigsten verwendete ist maven-archetype-quickstart (grundlegende Java-Projektvorlage).
Führen Sie den Befehl aus:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-first-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
Parameterbeschreibung:
| Parameter | Beschreibung |
|---|---|
-DgroupId |
Name der Organisation (z. B. Unternehmensdomäne in umgekehrter Reihenfolge) |
-DartifactId |
Projektname (wird zum Namen des Projektordners) |
-DarchetypeArtifactId |
Die verwendete Vorlage (quickstartist ein einfaches Java-Projekt) |
-DinteractiveMode=false |
Nicht-interaktiver Modus (manuelle Bestätigung vermeiden) |
Die nach der Ausführung generierte Projektstruktur:
my-first-app/ ├── pom.xml # Maven 项目配置文件 ├── src/ │ ├── main/ # 主代码目录 │ │ └── java/ # Java 源代码 │ │ └── com/example/App.java # 自动生成的示例类 │ └── test/ # 测试代码目录 │ └── java/ # 测试类 │ └── com/example/AppTest.java # 自动生成的测试类
Analyse der Projektstruktur
Detaillierte Erklärung von pom.xml
Dies ist die zentrale Konfigurationsdatei von Maven, die grundlegenden Informationen und Abhängigkeiten des Projekts definiert.
Beispiel der generierten pom.xml:
<project>
<!-- POM 模型版本,固定 4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 项目坐标(唯一标识) -->
<groupId>com.example</groupId>
<artifactId>my-first-app</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 项目打包方式(默认 jar,也可以是 war、pom 等) -->
<packaging>jar</packaging>
<!-- 项目名称和 URL(可选) -->
<name>my-first-app</name>
<url>http://www.example.com</url>
<!-- 依赖管理 -->
<dependencies>
<!-- JUnit 测试依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope> <!-- 仅用于测试 -->
</dependency>
</dependencies>
</project>
Quellcode-Struktur
| Verzeichnis | Zweck |
|---|---|
src/main/java |
Java-Hauptquellcode |
src/main/resources |
Konfigurationsdateien (wie z. B.application.properties) |
src/test/java |
Testcode |
src/test/resources |
Test-Ressourcendateien |
Beispielcode:
Hauptklasse App.java
Beispiel
public class App {
public static void main(String[] args) {
System.out.println("Hello Maven!");
}
}
Testklasse AppTest.java:
Beispiel
import org.junit.Test;
import static org.junit.Assert.*;
public class AppTest {
@Test
public void testApp() {
assertTrue(true); // Beispieltest
}
}
Erstellen und Ausführen
Häufige Maven-Befehle
| Befehl | Zweck |
|---|---|
mvn compile | Quellcode kompilieren |
mvn test | Tests ausführen |
mvn package | Package (erzeugt.jarDatei) |
mvn install | Im lokalen Repository installieren (damit andere Projekte davon abhängen können) |
mvn clean | CleantargetVerzeichnis sichern |
Vollständiger Build-Prozess
1. Projekt kompilieren:
mvn compile
Die kompilierten .class-Dateien werden im Verzeichnis target/classes abgelegt.
2. Tests ausführen:
mvn test
Die Testklassen unter src/test/java ausführen.
Testberichte werden in target/surefire-reports generiert.3. Paketieren:
mvn package
Erzeugt target/my-first-app-1.0-SNAPSHOT.jar.
4. Programm ausführen:
java -cp target/my-first-app-1.0-SNAPSHOT.jar com.example.App
5. Ausgabe:
Hello Maven!
Erweiterung: Das Projekt ändern
Abhängigkeiten hinzufügen
Zum Beispiel fügen SieGsonfür die JSON-Verarbeitung hinzu:
pom.xml ändern:
<dependencies>
<!-- 原有 JUnit 依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 新增 Gson 依赖 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
</dependencies>Führen Sie mvn compile aus, Maven lädt Gson automatisch herunter.
Ändern Sie die Hauptklasse, um Gson zu verwenden
Beispiel
import com.google.gson.Gson;
public class App {
public static void main(String[] args) {
Gson gson = new Gson();
String json = gson.toJson("Hello Maven with Gson!");
System.out.println(json);
}
}
Neu paketieren und ausführen:
mvn package java -cp target/my-first-app-1.0-SNAPSHOT.jar com.example.App
Ausgabe:
"Hello Maven with Gson!"
Häufige Probleme
Fehler beim Herunterladen von Abhängigkeiten
Ursache: Netzwerkproblem oder Repository nicht verfügbar.
Lösung:
Überprüfen Sie die Netzwerkverbindung.
Konfigurieren Sie ein inländisches Mirror-Repository (z. B. Alibaba Cloud):
<!-- 在 settings.xml oder pom.xml 中配置 -->
<mirror>
<id>aliyun</id>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
Einführung in das Alibaba Cloud Repository:https://developer.aliyun.com/mvn/guide。
Problem mit der Kompilierungsversion
Fehler: javac: ungültiges Ziel-Release: 11
Lösung: Java-Version in pom.xml angeben:
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
Zusammenfassung
Projekt erstellen:
mvn archetype:generateStandardstruktur generieren.Projektstruktur:
pom.xmlAbhängigkeiten und Konfiguration definieren.src/main/javaHauptcode ablegen,src/test/javaTestcode ablegen.
Build-Befehle:
mvn compile→mvn test→mvn package。
Führen Sie:
java -jaroderjava -cpExecute.jarDatei.