$30 off During Our Annual Pro Sale. View Details »

Release your creations into the world with JReleaser! 🚀

Release your creations into the world with JReleaser! 🚀

As a developer, you’ve been getting dependencies and applications from places like Maven Central, Homebrew and Chocolatey. Have you ever wondered how you can add your own creations to those packagers and repositories? Wouldn’t that be cool?!? Anyone worldwide being able to install your CLI or use your library with the tools they already use?

In this talk, we’ll show you just how fast and easy it can be to do just that! We’ll show you practical examples, like sharing a CLI app through Homebrew or publishing your library on Maven Central while announcing it on social media, all using JReleaser! After this talk, you’ll have learned exactly what this free Open Source tool has to offer and you’ll know why we are so excited to tell you about it!

So strap on your jetpack and join us as we show you how to package, publish, release and announce your creations at the speed of light!

Maarten Mulders

October 03, 2023
Tweet

More Decks by Maarten Mulders

Other Decks in Technology

Transcript

  1. RELEASE YOUR CREATIONS INTO
    RELEASE YOUR CREATIONS INTO
    RELEASE YOUR CREATIONS INTO
    RELEASE YOUR CREATIONS INTO
    RELEASE YOUR CREATIONS INTO
    THE WORLD
    THE WORLD
    THE WORLD
    THE WORLD
    THE WORLD
    WITH JRELEASER!
    WITH JRELEASER!
    WITH JRELEASER!
    WITH JRELEASER!
    WITH JRELEASER!
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  2. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  3. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  4. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  5. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  6. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  7. WHAT WE WILL COVER
    WHAT WE WILL COVER
    WHAT WE WILL COVER
    WHAT WE WILL COVER
    WHAT WE WILL COVER
    1. What is JReleaser?
    2. Release In Action
    (showing our releases in action)
    3. Release Recipes
    (show other ideas of JReleaser use)
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  8. WHAT IS JRELEASER?
    WHAT IS JRELEASER?
    WHAT IS JRELEASER?
    WHAT IS JRELEASER?
    WHAT IS JRELEASER?
    JReleaser is a release automation tool.
    “
    “
    “
    “
    “
    The quick and effortless way to release your
    The quick and effortless way to release your
    The quick and effortless way to release your
    The quick and effortless way to release your
    The quick and effortless way to release your
    Java project
    Java project
    Java project
    Java project
    Java project
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  9. WHO USES JRELEASER?
    Quarkus, JBang, JfrUnit, SDKMAN! and more!
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  10. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  11. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  12. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  13. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  14. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  15. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  16. AppImage
    Asdf
    Chocolatey
    Docker
    Flatpak
    Go sh
    Homebrew
    JBang
    Jib
    Macports
    Scoop
    Sdkman
    Snap
    Spec
    Winget
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  17. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  18. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  19. Image credits: JReleaser Website
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  20. RELEASES IN ACTION
    RELEASES IN ACTION
    RELEASES IN ACTION
    RELEASES IN ACTION
    RELEASES IN ACTION
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  21. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  22. PUBLISHING A NATIVE EXECUTABLE
    PUBLISHING A NATIVE EXECUTABLE
    PUBLISHING A NATIVE EXECUTABLE
    PUBLISHING A NATIVE EXECUTABLE
    PUBLISHING A NATIVE EXECUTABLE
    Building the executable (Maven + GraalVM)
    Packaging the distributions (Maven + JReleaser)
    Shipping the distributions (JReleaser)
    ⚙ Orchestrated with GitHub Actions
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  23. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  24. PUBLISHING TO MAVEN CENTRAL
    PUBLISHING TO MAVEN CENTRAL
    PUBLISHING TO MAVEN CENTRAL
    PUBLISHING TO MAVEN CENTRAL
    PUBLISHING TO MAVEN CENTRAL
    Get access to the Sonatype Repo (JIRA)
    Follow the requirements
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  25. MAVEN CENTRAL REQUIREMENTS
    MAVEN CENTRAL REQUIREMENTS
    MAVEN CENTRAL REQUIREMENTS
    MAVEN CENTRAL REQUIREMENTS
    MAVEN CENTRAL REQUIREMENTS
    Use correct coordinates (ex. be.tomcools)
    Javadoc and Sources must be provided
    Provide Checksum les (.md5/.sha1)
    Sign les with GPG/PGP
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  26. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  27. JRELEASER RECIPES!
    JRELEASER RECIPES!
    JRELEASER RECIPES!
    JRELEASER RECIPES!
    JRELEASER RECIPES!
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  28. ANNOUNCE WHAT YOU BUILT!
    ANNOUNCE WHAT YOU BUILT!
    ANNOUNCE WHAT YOU BUILT!
    ANNOUNCE WHAT YOU BUILT!
    ANNOUNCE WHAT YOU BUILT!
    announce:
    slack:
    active: ALWAYS
    token: ENV_TOKEN
    webhook: ENV_WEBHOOK
    channel: '#announce'
    message: ' {{projectVersion}} !'
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  29. DOWNLOAD COMMON SOURCES
    DOWNLOAD COMMON SOURCES
    DOWNLOAD COMMON SOURCES
    DOWNLOAD COMMON SOURCES
    DOWNLOAD COMMON SOURCES
    download:
    http:
    app:
    active: ALWAYS
    assets:
    - input: 'https: tomcools.be/default.LICENSE'
    output: '{{projectName}}.LICENSE'
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  30. IMPROVE SUPPLY CHAIN SECURITY
    IMPROVE SUPPLY CHAIN SECURITY
    IMPROVE SUPPLY CHAIN SECURITY
    IMPROVE SUPPLY CHAIN SECURITY
    IMPROVE SUPPLY CHAIN SECURITY
    catalog:
    slsa:
    active: ALWAYS
    attestationName: 'attest-{{projectName}}-{{projectVersion}}'
    upload:
    ftp:
    attestation upload:
    active: ALWAYS
    host: security.company.be
    username: ENV_USERNAME
    password: ENV_PASS
    path: 'uploads/{{projectName}}/{{artifactFile}}'
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  31. #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  32. CUSTOMIZE JRELEASER
    CUSTOMIZE JRELEASER
    CUSTOMIZE JRELEASER
    CUSTOMIZE JRELEASER
    CUSTOMIZE JRELEASER
    Hooks
    Extension points
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  33. 1. What is JReleaser?
    2. Release In Action
    (showing our releases in action)
    3. Release Recipes
    (show other ideas of JReleaser use)
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  34. BEFORE WE RELEASE
    BEFORE WE RELEASE
    BEFORE WE RELEASE
    BEFORE WE RELEASE
    BEFORE WE RELEASE YOU
    YOU
    YOU
    YOU
    YOU INTO THE
    INTO THE
    INTO THE
    INTO THE
    INTO THE
    ANTWERP EVENING...
    ANTWERP EVENING...
    ANTWERP EVENING...
    ANTWERP EVENING...
    ANTWERP EVENING...
    1. No big bang migration needed
    2. Look at existing projects
    3. Automate the h*ck out of it (if it's hard, do it more often)
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide

  35. REFERENCES & MORE INFORMATION
    REFERENCES & MORE INFORMATION
    REFERENCES & MORE INFORMATION
    REFERENCES & MORE INFORMATION
    REFERENCES & MORE INFORMATION
    DEMO PROJECTS FOLLOW US
    Spring Security Rickroll Starter
    Maven Central Search
    @tcoolsit
    @mthmulders
    “
    “
    “
    “
    “
    How likely are you to recommend this talk to
    How likely are you to recommend this talk to
    How likely are you to recommend this talk to
    How likely are you to recommend this talk to
    How likely are you to recommend this talk to
    your friends & family?
    your friends & family?
    your friends & family?
    your friends & family?
    your friends & family?
    #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)

    View Slide