Home
Emil Kantis
Cancel

Faster Kotest

Add these properties to speed up your Kotest executions. // in build.gradle.kts or a convention plugin tasks.withType<Test>().configureEach { useJUnitPlatform() // [... maybe other c...

KotlinConf 2024 Wrapped

I went to my first KotlinConf this year. It was a nice experience, and I’d really like to go again next year. It was fun to finally meet face-to-face with some people which I’ve only interacted wit...

Multi-project test report aggregation

Context We have a multi-project build using multiple jvm test suites (unit tests and integration tests). I want to aggregate the test reports of all these projects, irrespective of test type, into ...

Preventing parallelism of certain tasks in Gradle builds

Context In a multi-module Gradle build, it is sometimes desirable to prevent Gradle from running multiple things in parallel. Gradle typically scans input/output dependencies between tasks to deter...

A lesson in idempotency

Today a client reached out. They use software which I’ve built to manage invoicing between companies in their group. Problem was that some intra-group invoices had been handled but no invoices had ...

Accidental task avoidance

When I got to work today, my colleague informed me that he couldn’t build the master branch on his machine. I checked Github and sure enough, the integration tests on master were broken there as w...

Commas!, Everywhere,

Trailing commas is a great feature in Kotlin that has been around since version 1.4 (2020). A trailing comma is a comma left dangling w/o purpose, for instance in this example: listOf( "foo",...

Improving the default Spring Boot gradle build

Issues In the previous article, we broke down the components of the Spring Initializr Gradle build. I posted the article to the Kotlin language slack for feedback and Björn Kautler suggested a few ...

Creating a Spring Boot project for Kotlin and Gradle

This post will walk you through setting up a basic gradle project for Kotlin JVM development. Over the series, we’ll evolve the project into a fully fledged, multimodule multiplatform project whils...