Baue stabile, nachvollziehbare und wartbare Buildprozesse mit Maven
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
- 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
- Konzept Deep Dive
- 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
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
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.
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 AnfrageEvent-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