JReleaser says hello!

I’m beyond ecstatic to announce that JReleaser has finally posted its first release! JReleaser 0.1.0 is readily available, you can find more about this tool at https://jreleaser.org. So what is JReleaser? In just once sentence: the quick and effortless way to release your Java project! For 2 decades we have relied on Maven Central as the de facto place for publishing JARs, however options for publishing binary distributions (such as Zip and Tar) abound, often times tied with specific platforms such as Homebrew for Mac, Snapcraft for Linux, and Scoop for Windows, among others. JReleaser’s goal is to lower the Read More


Revisiting Publication to Maven Central with Apache Maven

Some weeks ago I posted an entry on Publishing to Maven Central with Apache Maven which shows the configuration I put in place on a handful of Open Source projects I maintain. The trigger that starts a release workflow is a commit message with “[release]” as a prefix. I was quite happy with the results, after all I’ve got the whole release pipeline working on automatic, however two things were nagging me. Firstly that a release workflow would always require a commit. What if I just wanted to publish a release on the go? Add up pushing a release from Read More


PomChecker 1.1.0 has been released!

Iā€™m happy to announce the immediate availability of the PomChecker suite version 1.1.0! PomChecker is a small utility that can verify if a POM or BOM file complies with the minimum requirements for being uploaded to Maven Central. I wrote this utility to reduce the chance of getting an error when uploading artifacts to Maven Central due to invalid or missing information in a given POM. There are no changes in behavior compared to version 1.0.0 however there are now three more options at your disposal for checking the validity of a POM file. The new options include: Running as Read More


Publishing to Maven Central using Apache Maven

Last week JFrog announced changes to its Bintray & JCenter services which will eventually lead to these services being discontinued by February 2022. I’ve been a happy Bintray user since the early days. Their services make uploading archives and making them available to the public a snap. Syncing those artifacts from JCenter to Maven Central can also be automated, simplifying the full release process. Previously I blogged about the options available to Gradle projects for publishing to Maven Central via Bintray. I’m saddened by the recent news of Bintray riding into the sunset, I’ll miss it dearly. And like many Read More


Building a layered modular Java application? Watch out for these!

Recently I’ve been experimenting with building layered modular Java applications with Layrry, a launcher and Java API for executing modularized Java applications. It so happens that version 1.0.0.Alpha1 was just released a couple of weeks ago, making it easier for anyone to give it a try. The base concept of Layrry is to organize your code in such a way that modules are grouped in a series of layers, enabling isolation between said layers as there’s a single classloader per layer, thus allowing conflicting modules (such as binary incompatibilities between classes) to be used within the same application. Module layers Read More


Layrry 1.0.0.Alpha1 has been released!

A brand new day brings a brand new release: I’m ecstatic to announce that Layrry 1.0.0.Alpha1 has been released! You can find all artifacts at Maven Central, Bintray, download them from Layrry’s releases page, or build it yourself by cloning https://github.com/moditect/layrry.git and following the build instructions found in the README, basically mvn install (yup, install is needed in this case, you can skip the clean). What’s more, you can also install Layrry directly from SDKMAN! as it’s now available as a candidate. šŸ¤©šŸ˜±šŸ˜šŸ„³ #Layrry at @sdkman_ pic.twitter.com/Kgu1BrsCaO ā€” Andres Almiray (@aalmiray) January 30, 2021 What’s all the fuzz about Layrry Read More


Releases posted in 2020

2020 was quite the year to say the least. The news cycle was underwhelming all year round. I must confess there were days when it was quite difficult to concentrate and couldn’t get anything done. I count myself among the lucky ones that were able to work from home since day one and didn’t get sick though I can’t say the same for friends and family, some got sick (most recovered) but tragically a few dear friends left before their time. Despite all the ups and downs I managed to post some releases during the year, as a matter of Read More


Ikonli 12.0.0 Released!

I’m ecstatic to announce that Ikonli 12.0.0 is finally available for general consumption! Ikonli is the best way to add spice and character to JavaFX and Swing applications alike via configurable icons. Ikonli provides icon packs for popular icon sets such as FontAwesome, Material Design, Weather icons, and more. This release increases the number of icons packs from 31 to 55! That’s a lot of icons to choose from! There’s no need to hunt down icons on the web, it’s likely Ikonli provides just what you require. But in the case that wasn’t true Ikonli is extensible, allowing you to Read More


Maven: verify or clean install?

This is it. After months of tweeting memes about mvn clean install I decided to get some numbers to see how performance would be affected when switching from one command to the other. But first a bit of history. Like many developers when faced with building a Maven project the first reaction is to invoke mvn clean install, after all you find that instruction in almost every README or BUILD file, so why question it? It does not matter if the project is single or contains multiple modules, the instruction is the same. As a matter of fact when the Read More


Gradle POMs revisited

Close to two years ago I posted my thoughts on introducing a Maven-like structure for organizing and building Gradle projects. I dubbed those ramblings The Gradle POM and The Gradle SuperPOM. In truth the latter is a misnomer, instead it should had been “The Gradle Parent POM”. These posts served as an introduction to a new project I had been working on: the Kordamp Gradle Plugin suite. The original goal for this project was to bring order to chaos found in the dozens of Open Source projects I actively maintain. Before Kordamp began, all these projects relied on the tried Read More


ˆ Back To Top