Slide 1

Slide 1 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 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)

Slide 7

Slide 7 text

ENTRÉE ENTRÉE ENTRÉE ENTRÉE ENTRÉE MAVEN WRAPPER MAVEN WRAPPER MAVEN WRAPPER MAVEN WRAPPER MAVEN WRAPPER #maven Maarten Mulders (@mthmulders)

Slide 8

Slide 8 text

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)

Slide 12

Slide 12 text

Project structure Repository (local, company, Central) #maven Maarten Mulders (@mthmulders)

Slide 13

Slide 13 text

Project structure Repository (local, company, Central) #maven Maarten Mulders (@mthmulders)

Slide 14

Slide 14 text

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)

Slide 16

Slide 16 text

FROMAGE FROMAGE FROMAGE FROMAGE FROMAGE IMPROVED REACTOR IMPROVED REACTOR IMPROVED REACTOR IMPROVED REACTOR IMPROVED REACTOR #maven Maarten Mulders (@mthmulders)

Slide 17

Slide 17 text

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)

Slide 19

Slide 19 text

DESSERT DESSERT DESSERT DESSERT DESSERT MAVEN DAEMON MAVEN DAEMON MAVEN DAEMON MAVEN DAEMON MAVEN DAEMON #maven Maarten Mulders (@mthmulders)

Slide 20

Slide 20 text

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)

Slide 22

Slide 22 text

TIMELINES TIMELINES TIMELINES TIMELINES TIMELINES #maven Maarten Mulders (@mthmulders)

Slide 23

Slide 23 text

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)

Slide 27

Slide 27 text

Maven Wrapper 🟢 Build/Consumer POM 🟠 Improved Reactor 🟠 Maven Daemon 🟢 #maven Maarten Mulders (@mthmulders)

Slide 28

Slide 28 text

PLEASE HELP! 1. 💾 Maven 4.0.0 alpha-13 2. 🧪 test 3. 🛠️ reproduce 4. 📃 report #maven Maarten Mulders (@mthmulders)

Slide 29

Slide 29 text

THANK YOU! REFERENCES & MORE INFORMATION Demo Projects @mthmulders 🌟 🌟 🌟 🌟 🌟 #maven Maarten Mulders (@mthmulders)