Apache Maven Masterclass (online) - Sandra Parsick, Gerd Aschemann - German
Build stable, traceable, and maintainable build processes with Maven
A well-designed build process works smoothly on the command line, in the IDE, and in CI automation. It is understandable, traceable, extensible, reproducible, reliable, and maintainable—and that is exactly what you will learn to implement in this training with Apache Maven.
Deepen your understanding of the central concepts and their implementation. Practical exercises help you apply what you have learned directly in your everyday work and improve your build processes in the long term.
Agenda
- What distinguishes Maven from Ant and Gradle?
- What should you avoid doing with Maven (and what alternatives are there)?
- Developer experience when using Maven
- Installation (central vs. project-specific, aka Maven Wrapper)
- Execution
- Integration with IDE using IntelliJ IDEA as an example
- How does Maven work under the hood?
- Definition of terms: plugin, extension, dependency, POM, lifecycle
- Initial concepts: build lifecycle (default)
- Simple project organization
- Convention over configuration
- Source code organization
- Your minimal POM
- Packaging - Lifecycle mapping
- Principle of the super POM (convention)
- If the convention does not fit exactly, then specify it (properties)
- Why should you not (initially) disregard the convention?
- Dependency Management
- GAV - Coordinates in conjunction with a Maven repository
- Maven Central
- How to find your dependencies (web search and ‘mcs’)
- Scopes
- Transitive dependencies
- How does Maven build the classpath based on dependencies?
- What impact does this have on the class loader?
- Dependency management (BOM, troubleshooting in the dependency jungle)
- Maven plugins
- Concept deep dive
- Interaction with lifecycle
- Default plugins from the lifecycle and packaging
- Plugins vs. plugin management
- Typical use cases and corresponding plugins (overview)
- Plugins for testing and quality assurance of the project
- Direct code analysis (PMD, spotbug)
- Code style
- Technical test execution and integration tests including coverage (JaCoCo)
- Quality assurance for the build setup
- Troubleshooting in the build process
- More complex project structures
- Multi-module projects
- Build: Parent POM vs Reactor POM
- How can shared dependencies be managed?
- Dependencies: Parent POM and dependency management
- Dependency management as a bill of materials (BOM)
- Creating your own BOM (multiple scenarios)
- Building and consuming your own artifacts (snapshot vs. release)
- Management and publication of build artifacts in the corporate environment
- Release process
- Maven profiles
- Your own snapshot repository
- Mirroring of Maven Central and other global repositories
- Security aspects of external Maven artifacts
Your Trainers
Sandra Parsick
Java Enterprise, cloud technologies, Maven
- Apache Maven Masterclass
Sandra Parsick is a Java Champion and freelance software developer specializing in Java Enterprise and cloud technologies. She has been involved in agile software development for several years, focusing on software craftsmanship, open source, and automation. In particular, she is a committer for Apache Maven and an active member of various program committees and community groups.
Gerd Aschemann
DevOps, Site Reliability, Development Experience, Maven
- Apache Maven Masterclass
Gerd Aschemann accompanies his clients on their journey to Continuous Everything. He is a freelance consultant with more than 30 years of experience in software architecture, development, and operations, or combinations of these three pillars, particularly DevOps, site reliability, and development experience.