Live data from Hacker News

JReleaser: quick and effortless way to release your project

jreleaser.org

31–37 of 37 posts

Re: JReleaser: quick and effortless way to release your project

#31
post #4

When I released my last Java project, I came out with a MacOS DMG, a Windows EXE installer, a Windows MSI installer, and a Fat Jar for Linux. Now we have MacOS ARM, MacOS x86, Linux ARM/x86, Windows ARM/x86. Even for a basic "cross platform" Java program (that bundles the JRE), that's 6 installs, which ostensibly need to be built on their respective platforms. Add on to that if you using something that includes a bin…

Did you look at https://www.jdeploy.com/ ?

I'm a huge fan of JDeploy - deployment used to be my biggest headache. Now I just run 'jdeploy' in the command line, change the version in the UI app and hit the 'Publish' button.

SnapCode: https://www.jdeploy.com/~snapcodejava

Re: JReleaser: quick and effortless way to release your project

#32

Earlier quoted context omitted.

I did, but at the time it was touted more as a centralized service that I wasn’t really interested in. Maybe it’s better now.

What do you mean be centralized service? It allows you to publish to GitHub releases or npm. Do you mean "central" like "GitHub"?

This was almost two years ago, and at the time it was highlighting its centralized download service.

Re: JReleaser: quick and effortless way to release your project

#33
post #25
post #4

When I released my last Java project, I came out with a MacOS DMG, a Windows EXE installer, a Windows MSI installer, and a Fat Jar for Linux. Now we have MacOS ARM, MacOS x86, Linux ARM/x86, Windows ARM/x86. Even for a basic "cross platform" Java program (that bundles the JRE), that's 6 installs, which ostensibly need to be built on their respective platforms. Add on to that if you using something that includes a bin…

I create all those binaries automatically for my javafx project using GitHub actions, jlink, and jpackage, works well so far.

This is what I do as well, but looking forward at all of the other platforms just made me hang my head.

For a "cross platform, portable system" it was just...ugh.

These are hobby projects. I struggle enough to make progress on them at all, much less dealing with tooling and what not (which I do not enjoy). Since my last project was a smashing success (I think 2-3 people downloaded it), it makes that extra hurdle to get installers working that much less interesting to me.

My next project I can leverage the work I did on my last one, to lower the burden. But clearly I would need to look into Github Actions (which I know nothing about) to get the cross platform binaries for machines I do not have. For my last project I installed Windows and Linux VMs to do my builds.

This JReleaser looks compelling, and maybe will make that kind of thing even easier with their examples.

Maybe my next project will be compelling enough to its audience to generate more traffic to justify the packaging effort.

Re: JReleaser: quick and effortless way to release your project

#34
post #30

This looks really cool. I'm surprised I didn't find this before when I was searching for something like this. I've been using jpackage[1] for a while now but this seems like it would be easier for me to manage using JReleaser given there is support via Gradle. Would this be a simple lift and shift job to move to JReleaser (as it seems like it just uses jpackage behind the scenes)? With jpackage, if you want to create…

Given that JReleaser relies on jpackage to create native installers, yes, you must run it on the target platform. Luckily it’s not that complicated to do on GitHub Actions. JReleaser offers plenty of examples for different setups, here’s how to do it for jpackage https://jreleaser.org/guide/latest/examples/java/jpackage.ht...

Re: JReleaser: quick and effortless way to release your project

#35
post #25

Earlier quoted context omitted.

I create all those binaries automatically for my javafx project using GitHub actions, jlink, and jpackage, works well so far.

This is what I do as well, but looking forward at all of the other platforms just made me hang my head. For a "cross platform, portable system" it was just...ugh. These are hobby projects. I struggle enough to make progress on them at all, much less dealing with tooling and what not (which I do not enjoy). Since my last project was a smashing success (I think 2-3 people downloaded it), it makes that extra hurdle to g…

JReleaser offers plenty of examples for Java and non-Java projects. All of them have explicit setup for building on GitHub Actions. Some repos (non platform specific or cross-platform) can be fully built and released on a local environment as well, not just CI https://jreleaser.org/guide/latest/examples/index.html

Re: JReleaser: quick and effortless way to release your project

#37
I am happy with JReleaser, I just started migrating all my libraries from publishing through io.github.gradle-nexus.publish-plugin to publishing with jreleaser, which became necessary after migrating my sonatype account to the new maven central scheme.

https://github.com/xemantic/

I also configured the announcement feature, so now I can share each release on my discord server and hopefully soon on LinkedIn.

The documentation of JReleaser is quite comprehensive, however does not fully cover "howto" steps regarding auth for each provider. Which in my case translated to initial cycle of try-and-error with my GitHub actions.

Post reply on HN