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


Does Gradle need build profile support?

The need for customizing a build based on a particular environment is a prevalent one. Maven offers an option called build profiles which lets you customize certain aspects of the build but not all. However on the Gradle side of things, there’s no such feature found in core, with the argument being that contrasted to what Maven offers as means for defining build files (a limited XML based DSL), Gradle offers not one but two DSLs based on full programming languages. This allows developers use the same control flows they’re used to in production and test code but on build Read More


Announcing the PomChecker project

I’m happy to announce the immediate availability of the PomChecker suite! What is it you ask? It’s a small set of utilities to verify that a POM or BOM file complies with the minimum requirements for being uploaded to Maven Central. I wish an utility like this existed years ago when I started publishing artifacts to Maven Central. It took me a few tries in the beginning to get the POM files just right. Recently I’ve seen other developers struggling with these rules as well. Hopefully these utilities can help them and others get on the road much faster. There Read More


Configuring the OCI Gradle Build Cache plugin with GitHub Actions

Following up on the previous post that explains how to setup the OCI Gradle Build Cache plugin on Travis-CI today I’d like to show how to do the same with GitHub Actions. The steps to follow are quite similar; if you do not already have an OCI account and/or a configured compartment then please follow steps 1, 2, and 3 as explained in this post, then proceed with the next steps Step 4: Apply the plugin to your project Paste the following into your settings.gradle file Notice that the location of the config file is local to the project. There’s Read More


Configuring the OCI Gradle Build Cache plugin with Travis-ci

The following post describes how to configure the oci-gradle-build-cache plugin to write to the cache when running on Travis-ci. I’m assuming dear reader that you have an Oracle Cloud account ready, but if that were not to be the case then you can sign up for an Always Free tier account at https://www.oracle.com/cloud/free/. Let’s get started! Step 1: Create a config file There are a couple of ways to configure the plugin, we’ll use a configuration file whose format is specified at this page; you must gather the following information from your account tenancy id user id default home region Read More


Running Gradle inside Maven

As organizations evolve so do their codebases. Apache Maven and Gradle are the most popular and widely used build tools in the JVM. Usually multi-project builds rely on a single build tool to accomplish the job but there may be uses cases where you need to combine both, having Maven be the one leading the pack. One possible use case is to build a companion Gradle plugin, this is the case for ByteBuddy and Quarkus; another use case is to run a composite build with Maven and Gradle projects mixed together. In this post I’ll show how Gradle can be Read More


ˆ Back To Top