Apache Maven Masterclass (Online) - Sandra Parsick, Gerd Aschemann - Deutsch
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.
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
Deine Trainer:innen
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.
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.