Apache Maven is an ubiquitous build tool in the Java ecosystem, some even claim it’s the defacto standard build tool. Configuring Maven is deceptively simple, after all it’s just a matter of writing XML, isn’t it? Things look differently when the rubber meets the road. One must know the intricacies of the build lifecycle; how plugins, goals (mojos), and phases come together; rules for dependency resolution; configuration inheritance between parent – child POM files; enhancing the build with profiles; and more. Fortunately we’ll cover all these topics in this workshop. We’ll begin from scratch and move to advanced topics thus by the end of the session you should feel quite comfortable working with Maven.
Report Bug
·
Request Feature
Table of Contents
This repository contains examples and general information about Apache Maven behaviour!
- Java 8, 21?
- IDE
-
POM
- Coordinates · 📖
- Model · 📖
- Properties · 📖
-
Maven Lifecycle
- Phases · 📖
- Plugin goals · 📖
- Command arguments · 📖
-
Plugins I
- Phase bindings · 📖
- Executions · 📖
-
Plugins II
-
Multi-module projects
-
Inheritance
- Parent POM · 📖
- Revisiting plugins · 📖
- The pluginManagement section · 📖
- combine.self & combine.children
-
Dependency resolution
-
Misc
- Profiles · 📖
- BOMs: library vs. stack
- The Maven wrapper · 📖
- The enforcer plugin · 📖
- The flatten plugin