Gradle plugins and scripts for publishing Java projects Maven Central
A collection of Gradle plugins that streamline Java project development and publication to Maven Central Repository via Sonatype.
Gradle Kit provides four convention plugins designed to simplify CI/CD workflows for Java projects. These plugins automatically configure standard Gradle functionality with sensible defaults while allowing customization through environment variables, system properties, or project properties.
Key Features:
Extends Gradle’s standard java plugin with automatic configuration for modern Java projects.
Features:
java pluginUsage:
plugins {
id 'io.github.jonloucks.java-kit' version '1.2.2'
}
Extends Gradle’s java-library plugin with the same automatic configuration as java-kit, optimized for library projects.
Features:
java-library pluginUsage:
plugins {
id 'io.github.jonloucks.java-library-kit' version '1.2.2'
}
Simplifies publishing to Maven Central Repository via Sonatype’s new Central Publishing API.
Features:
maven-publish pluginhttps://central.sonatype.com/publishingUsage:
plugins {
id 'io.github.jonloucks.maven-publish-kit' version '1.2.2'
}
Tasks:
createPublisherBundle - Creates a ZIP bundle of all publicationsuploadPublisherBundle - Uploads the bundle to Sonatype CentralHandles GPG signing for Maven publications using in-memory keys, ideal for CI/CD environments.
Features:
signing pluginUsage:
plugins {
id 'io.github.jonloucks.signing-kit' version '1.2.2'
}
Configuration: Provide GPG credentials via environment variables:
KIT_GPG_SECRET_KEY - ASCII-armored private keyKIT_GPG_SECRET_KEY_PASSWORD - Key passwordplugins {
id 'io.github.jonloucks.java-kit' version '1.2.2'
id 'io.github.jonloucks.maven-publish-kit' version '1.2.2'
id 'io.github.jonloucks.signing-kit' version '1.2.2'
}
plugins {
id 'io.github.jonloucks.java-library-kit' version '1.2.2'
id 'io.github.jonloucks.maven-publish-kit' version '1.2.2'
id 'io.github.jonloucks.signing-kit' version '1.2.2'
}
- name: Build and Publish
run: ./gradlew check jacocoTestReport publish createPublisherBundle uploadPublisherBundle
env:
KIT_PROJECT_WORKFLOW: 'main-release'
KIT_GPG_SECRET_KEY: $
KIT_GPG_SECRET_KEY_PASSWORD: $
KIT_OSSRH_USERNAME: $
KIT_OSSRH_PASSWORD: $