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

package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello Maven!");
    }
}

Testklasse AppTest.java:

Beispiel

package com.example;

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

BefehlZweck
mvn compileQuellcode kompilieren
mvn testTests ausführen
mvn packagePackage (erzeugt.jarDatei)
mvn installIm lokalen Repository installieren (damit andere Projekte davon abhängen können)
mvn cleanCleantargetVerzeichnis 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

package com.example;

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

  1. Projekt erstellen:mvn archetype:generateStandardstruktur generieren.

  2. Projektstruktur:

    • pom.xmlAbhängigkeiten und Konfiguration definieren.

    • src/main/javaHauptcode ablegen,src/test/javaTestcode ablegen.

  3. Build-Befehle:

    • mvn compile → mvn test → mvn package。

  4. Führen Sie:java -jaroderjava -cpExecute.jarDatei.

Andere Erweiterungen