Du interessierst dich für KI? 🔎 Entdecke unsere KI-Trainings.

Apache Maven Masterclass

3 Tage

Termine und Buchung

Entwickle stabile, nachvollziehbare und wartbare Buildprozesse mit Maven

Mit diesem Training erhältst du einen umfassenden Überblick über Apache Maven™ – praxisnah und auf deine Bedürfnisse zugeschnitten. Du hast die Wahl:

  • 3-tägige Masterclass für ein umfassendes Gesamtpaket
  • 2-tägiges Training „Apache Maven Essentials“, um alle wichtigen Konzepte zu verstehen und anwenden zu können
  • 1-tägiger Workshop „Apache Maven Deep Dive“, der auf den Essentials aufbaut und ausgewählte Themen weiter vertieft.

Visualisierung des Aufbaus der drei-tägigen Masterclass

Ein durchdachter Buildprozess funktioniert reibungslos auf der Kommandozeile, in der IDE und in der CI-Automatisierung. Er ist verständlich, nachvollziehbar, erweiterbar, reproduzierbar, zuverlässig und wartbar – und genau das lernst du in diesem Training mit Apache Maven umzusetzen.

Vertiefe dein Verständnis für die zentralen Konzepte und ihre Umsetzung. Praxisnahe Übungen helfen dir, das Gelernte direkt in deinem Arbeitsalltag anzuwenden und deine Buildprozesse langfristig zu verbessern.

Agenda

Tag 1 und 2

  • Was unterscheidet Maven von Ant und Gradle?
  • Was solltest du mit Maven eher nicht tun (und welche Alternativen gibt es)?
  • Developer Experience bei der Nutzung von Maven
    • Installation (zentral vs. Projektspezifisch aka. Maven-Wrapper)
    • Ausführung
    • Integration mit IDE am Beispiel IntelliJ IDEA
  • Wie funktioniert Maven unter der Haube?
    • Begriffsklärung: Plugin, Extension, Dependency, POM, Lifecycle
    • Erste Konzepte: Build Lifecycle (default)
  • Einfache Projektorganisation
    • Convention over Configuration
    • Source-Code-Organisation
    • Deine minimale POM
    • Packaging - Lifecycle Mapping
    • Prinzip der Super-POM (Convention)
    • Wenn die Convention nicht exakt passt, dann diese präzisieren (Properties)
    • Warum solltest du dich (erstmal) nicht über die Convention hinwegsetzen?
  • Dependency Management
    • GAV - Koordinaten im Zusammenspiel mit einem Maven Repository
    • Maven Central
    • Wie kannst du deine Dependencies finden (Websuche und ‚mcs‘)?
    • Scopes
    • transitive Abhängigkeit
    • Wie baut Maven den Classpath anhand der Dependencies auf?
    • Welche Auswirkungen hat es auf den Classloader?
    • Verwaltung von Dependencies (Dependency Management, BOM, Troubleshooting im Abhängigkeitsdschungel)
  • Maven-Plugins
    • Deep Dive ins Konzept
    • Interaktion mit Lifecycle
    • Default Plugins aus dem Lifecycle und dem Packaging
    • Plugins vs Plugin Management
    • Typische Use Cases und dazu passende Plugins (Übersicht)
    • Plugins für Test und Qualitätssicherung des Projekts
    • Direkte Codeanalyse (PMD, spotbug)
    • Codestyle
    • Fachliche Testausführung und Integrationstests inkl. -Abdeckung (JaCoCo)
    • Das Build-Setup qualitätssichern
    • Fehlersuche im Buildprozess
  • Komplexere Projektstrukturen
    • Multi-Module Projekte
    • Build: Parent POM vs Reactor POM
  • Wie können gemeinsame Dependencies verwaltet werden?
    • Dependencies: Parent POM und Dependency Management
    • Dependency Management als Bill Of Materials (BOM)
    • Erstellung einer eigenen BOM (mehrere Szenarien)
    • Eigene Artefakte bauen und konsumieren (Snapshot vs Release)
  • Verwaltung und Veröffentlichung von Build-Artefakten im Firmenumfeld
    • Release Prozess
    • Maven Profile
    • Eigenes Snapshot Repository
    • Mirroring von Maven Central und anderen globalen Repositories
    • Security Aspekte von Externen Maven Artefakten

Tag 3

  • Continuous Integration mit Maven
    • Parallele Builds und Branching
    • (Remote) Caching und andere Möglichkeiten zur Beschleunigung des Builds
    • Veröffentlichen von SNAPSHOTs
    • Versionierung von Projekten
    • Continuous Delivery und -Deployment
    • Build und Test mit Containern
    • Good Practices für weit verbreitete Build-Server (Jenkins, GitHub Actions, GitLab CI, …)
  • Wenn Maven etwas nicht (gut) kann
    • Externe Programme starten
    • Skripte ausführen
    • Extensions verwenden
    • Eigene Plugins und ggf. Extensions erstellen
  • Qualität über die Zeit beobachten und auswerten
    • Codeanalyse und Testcoverage: SonarQube
    • Security
    • Laufzeitmessungen (wie lange dauert mein Build)
    • Last- und Performancetests des Projekts
  • Maven 4 - Neuerungen
    • Build- vs. Consumer-POM
    • Neues Wording
    • Upgrades automatisieren
    • BOMs als Packaging
    • Optimierungen im Dependency Management
    • Neuere JDKs (>= 17) als Maven Runtime und trotzdem „alte“ Projekte bauen

Zielgruppe

Arbeitest du in einem Java-Projekt, dessen Buildprozess über Compile, Test, Install hinausgeht? Und hast du grundlegende Erfahrungen mit Buildwerkzeuge gesammelt und möchtest die nächste Erkenntnisstufe erreichen? Dann bist du hier richtig!

Dieses Training richtet sich an Rollen wie

  • Entwickler:innen
  • DevOps-Engineer
  • Platform-Engineer
  • Test-Engineer
  • Softwarearchitekt:innen

Technische Anforderungen:

  • Eigener Rechner mit vorinstalliertem mind. JDK 17, Apache Maven mind. 3.9.x, aber noch nicht Maven 4.x und IDE mit der man sich auskennt
  • Zugang zum Internet, insbesondere Maven Central und GitHub
  • Docker oder eine andere Container-Runtime sind empfehlenswert.

Lernziele

Du möchtest gerne wissen, wie es unter der Haube funktioniert.

Du bist mit deinem Build unzufrieden und möchtest lernen, welche Möglichkeiten der Optimierung es gibt.

Du lernst hier, für welche Aufgaben Maven sich gut eignet und für welche nicht.

Du hast komplexe Test- und Qualitätssicherungsprozesse und möchtest diese verbessern.

Lerne die Vorteile des optionated Maven-Builds bzgl. Verständlichkeit und Wartbarkeit kennen und schätzen, gerade auch, wenn dir andere Buildwerkzeuge auf den ersten Blick einfacher erscheinen.

Deine Trainer:innen

socreatory Trainer:in Gerd Aschemann

Gerd Aschemann

DevOps, Site Reliability, Development Experience, Maven

  • Apache Maven Masterclass

Gerd Aschemann begleitet seine Kunden auf ihrem Weg zu Continuous Everything. Er ist freiberuflicher Berater mit mehr als 30 Jahren Erfahrung in den Bereichen Softwarearchitektur, Entwicklung und Betrieb oder Kombinationen dieser drei Säulen, insbesondere DevOps, Site Reliability und Development Experience.

socreatory Trainer:in Sandra Parsick

Sandra Parsick

Java Enterprise, Cloud Technologien, Maven

  • Apache Maven Masterclass

Sandra Parsick ist Java Champion und freiberufliche Softwareentwicklerin mit Spezialisierung auf Java Enterprise und Cloud-Technologien. Seit mehreren Jahren beschäftigt sie sich mit agiler Softwareentwicklung, wobei ihre Schwerpunkte auf Software Craftsmanship, Open Source und Automatisierung liegen. Insbesondere ist sie Committerin für Apache Maven und aktives Mitglied verschiedener Programmkomitees und Community-Gruppen.

Online-Termine

Vor-Ort-Termine

Termine auf Anfrage

Event-Ticketing-Software von pretix

Inhouse Training

Du kannst dieses Training auch als Inhouse-Training exklusiv für dein Team buchen. Bitte nutze dafür unser Anfrage-Formular.

Jetzt anfragen