Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's Cooking in Maven (JavaZone)

What's Cooking in Maven (JavaZone)

It’s been over 10 years since Maven 3 saw the light, bringing initial multi-module support. Later releases brought a lot of improvements, bug fixes, and of course coloured output.

But the Maven community hasn’t been resting on their laurels. A lot of effort has gone into the future of Maven. You may have heard about Maven 4, Maven Wrapper, or Maven Daemon. Why should you care? And how will it change the way you use Maven? I will show you by using the latest snapshot builds of Maven - time will tell if that’s a brave or a stupid idea…

Join me to find out what the future of Maven has for you!

Maarten Mulders

September 07, 2022
Tweet

More Decks by Maarten Mulders

Other Decks in Technology

Transcript

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

    View Slide

  2. MENU DU JOUR
    Todays Menu
    Entrée Maven Wrapper
    Plat Principal Build/Consumer POM
    Fromage Improved Reactor
    Dessert Maven Daemon
    #maven Maarten Mulders (@mthmulders)

    View Slide

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

    View Slide

  4. 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)

    View Slide

  5. LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    #maven Maarten Mulders (@mthmulders)

    View Slide

  6. 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)

    View Slide

  7. BUILD/CONSUMER POM
    Decouples POM in version control from POM in repository.
    #maven Maarten Mulders (@mthmulders)

    View Slide

  8. #maven Maarten Mulders (@mthmulders)

    View Slide

  9. #maven Maarten Mulders (@mthmulders)

    View Slide

  10. 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)

    View Slide

  11. LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    #maven Maarten Mulders (@mthmulders)

    View Slide

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

    View Slide

  13. 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.
    It improves your daily use of Maven: no more mvn install.
    #maven Maarten Mulders (@mthmulders)

    View Slide

  14. LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    #maven Maarten Mulders (@mthmulders)

    View Slide

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

    View Slide

  16. MAVEN DAEMON
    Provides faster Maven builds using a daemon process.
    Keeps the JVM and plugins "warm".
    Runs multi-threaded by default without cluttering output.
    #maven Maarten Mulders (@mthmulders)

    View Slide

  17. LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    LET'S GET COOKING!
    #maven Maarten Mulders (@mthmulders)

    View Slide

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

    View Slide

  19. MAVEN WRAPPER
    🟢
    Available today
    #maven Maarten Mulders (@mthmulders)

    View Slide

  20. BUILD/CONSUMER POM
    🟠
    Available in Maven 4
    ⚠️
    Plugins need updating / replacement
    #maven Maarten Mulders (@mthmulders)

    View Slide

  21. IMPROVED REACTOR
    🟠
    Available in Maven 4
    #maven Maarten Mulders (@mthmulders)

    View Slide

  22. MAVEN DAEMON
    🟢
    Available today
    ⚠️
    Not yet available for Apple Silicon
    ⚠️
    May break if you use non-threadsafe plugins
    #maven Maarten Mulders (@mthmulders)

    View Slide

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

    View Slide

  24. PLEASE HELP!
    1.
    🧪
    test
    2. 🛠️
    reproduce
    3.
    📃
    report
    #maven Maarten Mulders (@mthmulders)

    View Slide

  25. TAKK!
    REFERENCES & MORE INFORMATION
    Please rate using the bowl at the room exit!
    Demo Projects @mthmulders
    #maven Maarten Mulders (@mthmulders)

    View Slide