WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
MAVEN?
MAVEN?
MAVEN?
MAVEN?
MAVEN?
#maven Maarten Mulders (@mthmulders)
Slide 2
Slide 2 text
#maven Maarten Mulders (@mthmulders)
Slide 3
Slide 3 text
spring-io/start.spring.io #1012
“
And I just wanted to mention that [...] Maven is
working on a lot of the nice things [...]. Most of
them are already available for use.
-- Martin Kanters
#maven Maarten Mulders (@mthmulders)
Slide 4
Slide 4 text
WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
WHAT'S COOKING IN
MAVEN?
MAVEN?
MAVEN?
MAVEN?
MAVEN?
#maven Maarten Mulders (@mthmulders)
Slide 5
Slide 5 text
ABOUT ME
@mthmulders
@Java_Champions
@OracleACE
@InfoSupportBV
@ASFMavenProject
#maven Maarten Mulders (@mthmulders)
Slide 6
Slide 6 text
MENU DU JOUR
Todays Menu
Entrée Maven Wrapper
Plat Principal Build/Consumer POM
Fromage Improved Reactor
Dessert Maven Daemon
#maven Maarten Mulders (@mthmulders)
MAVEN WRAPPER
Ensures project users have everything they need to build your
project.
Runs on Linux, macOS, Solaris, Windows.
Forget about different Maven versions your users may have.
#maven Maarten Mulders (@mthmulders)
Slide 9
Slide 9 text
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
#maven Maarten Mulders (@mthmulders)
Slide 10
Slide 10 text
PLAT PRINCIPAL
PLAT PRINCIPAL
PLAT PRINCIPAL
PLAT PRINCIPAL
PLAT PRINCIPAL
BUILD/CONSUMER POM
BUILD/CONSUMER POM
BUILD/CONSUMER POM
BUILD/CONSUMER POM
BUILD/CONSUMER POM
#maven Maarten Mulders (@mthmulders)
Slide 11
Slide 11 text
BUILD/CONSUMER POM
Decouples POM in version control from POM in repository.
#maven Maarten Mulders (@mthmulders)
BUILD/CONSUMER POM
Decouples POM in version control from POM in repository.
Paves the road for further evolution of the POM as we know it.
Without breaking the whole Java ecosystem.
#maven Maarten Mulders (@mthmulders)
Slide 15
Slide 15 text
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
#maven Maarten Mulders (@mthmulders)
IMPROVED REACTOR
Addresses long-standing issues in Maven on multi-module
projects.
The Reactor is now fully root-project aware.
— As long as you have a .mvn folder.
— Or add root="true" on the root project's model.
It improves your daily use of Maven: no more mvn install.
— Uses a project-local repository in target/project-local-repo.
#maven Maarten Mulders (@mthmulders)
Slide 18
Slide 18 text
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
#maven Maarten Mulders (@mthmulders)
MAVEN DAEMON
Provides faster Maven builds using a daemon process.
Keeps the JVM and plugins "warm".
Runs multi-threaded by default without cluttering output.
brings improved parallelism by building in
topological order.
Takari Smart builder
#maven Maarten Mulders (@mthmulders)
Slide 21
Slide 21 text
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
LET'S GET COOKING!
#maven Maarten Mulders (@mthmulders)
MAVEN WRAPPER
🟢
Available today
#maven Maarten Mulders (@mthmulders)
Slide 24
Slide 24 text
BUILD/CONSUMER POM
🟠
Available in Maven 4 (alpha)
⚠️
Plugins may need updating / replacement
#maven Maarten Mulders (@mthmulders)
Slide 25
Slide 25 text
IMPROVED REACTOR
🟠
Available in Maven 4 (alpha)
#maven Maarten Mulders (@mthmulders)
Slide 26
Slide 26 text
MAVEN DAEMON
🟢
Available today
Available for Maven 3.9.x as well as for 4.x (alpha)
⚠️
May break if you use non-threadsafe plugins
#maven Maarten Mulders (@mthmulders)