A Gradle plugin that makes managing Maven POM metadata simple and consistent across multi-module projects.
- Centralized organization-wide POM management / Guide
- Selective override per submodule / Guide
- Artifact signing & validation before publishing to Maven Central / Guide
plugins {
id("io.github.yonggoose.maven.central.utility.plugin.project") version "0.1.7" // Gradle plugin to apply organization-wide defaults to projects.
id("io.github.yonggoose.maven.central.utility.plugin.setting") version "0.1.7" // Gradle plugin to apply organization-wide defaults to settings.
id("io.github.yonggoose.maven.central.utility.plugin.check") version "0.1.7" // Gradle plugin to check artifacts.
}
Not yet published to Maven Central. (Will be available soon.)
Minimal setup in build.gradle.kts
:
rootProjectPom {
groupId = "io.github.yonggoose"
artifactId = "my-project"
version = "1.0.0"
name = "My Project"
description = "A sample project"
}
Validate before publishing:
./gradlew checkProjectArtifact
The Gradle Maven Publish Plugin (vanniktech) is a popular choice for publishing Android and Kotlin libraries to Maven Central, JCenter, and Nexus repositories.
Maven Central utility plugins for Gradle
works seamlessly with it, eliminating the need to duplicate POM configurations across modules.
import io.github.yonggoose.organizationdefaults.OrganizationDefaults
plugins {
id("java")
id("io.github.yonggoose.maven.central.utility.plugin..project") version "0.1.6"
id("com.vanniktech.maven.publish") version "0.34.0"
id("maven-publish")
}
rootProjectPom {
groupId = "io.github.yonggoose"
artifactId = "organization-defaults"
version = "1.0.0"
...
}
afterEvaluate {
val mergedPom = project.extensions.extraProperties.get("mergedDefaults") as OrganizationDefaults
mavenPublishing {
coordinates(
groupId = mergedPom.groupId,
artifactId = mergedPom.artifactId,
version = mergedPom.version
)
pom {
name.set(mergedPom.name)
description.set(mergedPom.description)
url.set(mergedPom.url)
...
}
}
}
This integration shows how centralized POM management from Maven Central utility plugins for Gradle can be directly reused inside vanniktech-maven-publish, making your publishing workflow cleaner and less error-prone.
➡️ Blog Post | Demo Video
- Gradle 8.0+
- Kotlin DSL support
Apache License 2.0