library-gradle-plugin is a Gradle convention plugin bundle that provides standardized build configurations for Grounds projects. It consolidates common setup tasks, dependency management, and build configurations to ensure consistency across all Grounds projects while reducing boilerplate configuration.
Quick Links
GitHub Repository
View the source code and contribute to the plugin bundle.
GitHub Packages
Browse available plugin versions on GitHub Packages.
Getting Started
To get started with the Gradle plugin bundle:- Install the plugins in your project
- Apply the base conventions plugin with a version
- Add the project-specific conventions (Paper, Velocity, Minestom, gRPC) as needed
Functionality
The plugin bundle consists of convention plugins, each providing specific functionality:Plugin Structure
The convention plugins build on each other. Base conventions sit at the bottom, Kotlin conventions add publishing, and the platform-specific conventions layer on top.Base Conventions (gg.grounds.base-conventions)
- Applies standard plugins (Kotlin JVM, Kapt, Spotless)
- Code formatting with Spotless (ktfmt, Google Style, 4-space indentation)
- Configures Maven Central repository
- Kotlin + Java toolchain configuration (JVM 25, Java 24)
- Group/version defaults with optional
versionOverrideproperty - JUnit Platform for tests with full exception output
Kotlin Conventions (gg.grounds.kotlin-conventions)
- Maven publishing to GitHub Packages
- Maven publication naming for root and subprojects
Paper Base Conventions (gg.grounds.paper-base-conventions)
- Adds Paper repository
- Shadow packaging configuration (Fat JAR)
- Disables default
jartask and wiresshadowJarintobuild - Standardized Shadow JAR naming
Paper Conventions (gg.grounds.paper-conventions)
- Paper API dependency (compileOnly)
- Automatic version replacement in
plugin.yml
Velocity Conventions (gg.grounds.velocity-conventions)
- Optional Velocity API dependencies (compileOnly and kapt)
- Automatic generation of
BuildInfoclass with version for dynamic plugin versioning
Minestom Conventions (gg.grounds.minestom-conventions)
- Minestom dependency
- JVM target attribute pinned to 25 for resolved configurations
gRPC Conventions (gg.grounds.grpc-conventions)
- Protobuf + gRPC dependencies
- Protobuf code generation with gRPC plugin