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

Release your creations into the world with JRel...

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

May 09, 2024
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)
  2. 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)
  3. 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)
  4. WHO USES JRELEASER? Quarkus, JBang, JfrUnit, SDKMAN! and more! #jreleaser

    Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  5. WHO WORKS ON JRELEASER? Originally created by Andres Almiray, but

    recently moved to the Commonhaus Foundation #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  6. AppImage Asdf Chocolatey Docker Flatpak Homebrew JBang Jib Macports Scoop

    Sdkman Snap Spec Winget #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  7. โš™ RELEASES IN ACTION โš™ RELEASES IN ACTION โš™ RELEASES

    IN ACTION โš™ RELEASES IN ACTION โš™ RELEASES IN ACTION #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  8. PUBLISHING A NATIVE EXECUTABLE PUBLISHING A NATIVE EXECUTABLE PUBLISHING A

    NATIVE EXECUTABLE PUBLISHING A NATIVE EXECUTABLE PUBLISHING A NATIVE EXECUTABLE M Building the executable (Maven + GraalVM) I Packaging the distributions (Maven + JReleaser) Shipping the distributions (JReleaser) โš™ Orchestrated with GitHub Actions #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  9. 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)
  10. 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)
  11. โšก JRELEASER RECIPES! โšก JRELEASER RECIPES! โšก JRELEASER RECIPES! โšก

    JRELEASER RECIPES! โšก JRELEASER RECIPES! #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  12. 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)
  13. 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)
  14. 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)
  15. CUSTOMIZE JRELEASER CUSTOMIZE JRELEASER CUSTOMIZE JRELEASER CUSTOMIZE JRELEASER CUSTOMIZE JRELEASER

     Hooks โšก Extension points #jreleaser Maarten Mulders (@mthmulders) & Tom Cools (@tcoolsit)
  16. 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)
  17. 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 LONDON EVENING... LONDON EVENING... LONDON EVENING... LONDON EVENING... LONDON 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)
  18. 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)