Essen macht Spaß, Abwasch nicht

  • Immer gleiche Schritte:
    • Einweichen
    • Abwischen
    • Abspülen
    • Abtrocknen
  • Idee: Maschine macht das für mich
  • Voraussetzung: Geschirr immer gleiche Form, ordentlich eingeräumt

Java-Build-Prozess

  • Immer gleiche Schritte:
    • Kompilieren
    • Testen
    • Zippen
    • Bereitstellen
  • Idee: Maschine mach das für mich (immer gleich, reproduzierbar)
  • Voraussetzung: Projekt immer gleiche Struktur
    • "Convention over Configuration"

Lösung

  • Projekt wird nach dem Maven Schema strukturiert.
  • So kann der Code als JAR Datei gepackt und verteilt werden.
  • Dazu kann der Quellcode und Dokumentation geladen werden.
  • Versionierung verhindert Inkompatibilitätsprobleme.

Project Management

Basis: pom.xml (Projekt Konfiguration)
Definiert:

  • Projektspezifische Einstellungen
  • Abhängigkeiten
  • Build-Prozess

Archetyp für default Setup:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.neuefische</groupId>
  <artifactId>maven-example</artifactId>
  <version>1.0-SNAPSHOT</version>
.....
</project>

<?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>de.neuefische.maxmustermann</groupId>
    <artifactId>beispielprojektMaven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>18</maven.compiler.source>
        <maven.compiler.target>18</maven.compiler.target>
    </properties>

    <dependencies>
    </dependencies>

</project>

Maven Befehle

  • führen ein maven Script aus, Syntax: mvn <command>
  • führen in der pom.xml spezifizierten Prozess aus
Befehl Effekt
compile Kompiliert den Code zu einem target ordner
test führt mvn compile und tests aus
package führt mvn test aus und Packt den java code in eine jar im target ordner
install führt mvn package aus und fügt das jar file dem lokalen repository hinzu
clean entfernt den target ordner

Aufgabe: Maven

  1. Setze ein Maven Projekt auf
  2. lasse die main Methode laufen
  3. baue dein Projekt