grounds.yaml.
For the internal step-by-step workflow, start with
Work with local plugin workspaces.
The manifest stays portable and points at release sources. Your local
workspace.yaml maps plugin IDs and variants to repositories on your machine.
grounds push only uses those local builds when you ask for them with
--local or --with-local.
Config file
Workspace mappings live in the CLI config directory:
The global
--config <dir> flag and GROUNDS_CONFIG_DIR environment variable
move this file together with the rest of the CLI config.
Manifest shape
Local overrides match entries ingrounds.yaml by id and optional variant:
grounds.yaml
source remains the default release source. id and variant give the CLI a
stable key for local replacement.
Add mappings explicitly
Useworkspace add when you know the repository path and artifact layout:
Artifact globs should resolve to the deployable JAR. If multiple JARs match,
the resolver ignores common auxiliary JARs such as
-sources and -javadoc
and prefers shadow/all artifacts.
Minestom composite builds
For aminestom variant, the mapping supplies the local repository path to a temporary Gradle composite build. The CLI still writes the generic JAR and shadowJar defaults because all workspace mappings share one schema, but Minestom ignores those values. It runs the server distribution task and resolves the distribution artifact from the selected grounds.yaml flavor instead.
module and project to the Minestom variant in workspace.yaml; see Local Minestom modules.
Scan sibling repos
Useworkspace scan to discover local plugin repositories under one or more
directories:
--yes, the CLI prints the proposed mappings and asks before writing.
With --yes, it writes immediately.
Scan does not overwrite existing mappings. If you have custom build commands or
artifact paths, they stay in place.
Inspect and toggle mappings
workspace list prints each mapping with ID, variant, enabled state, path,
artifact, and build command. workspace doctor checks whether configured repo
paths exist.
Push with local overrides
Use release sources by default:grounds.yaml:
Effective tells you whether the push uses the release source from
grounds.yaml or a local artifact from workspace.yaml.
Behavior and safety
- Local overrides apply only to the push where you pass
--with-localor--local. - The CLI builds local repos before resolving their artifacts.
- Git metadata is best-effort. Non-git directories still work.
- Local filesystem paths are passed to Gradle through a generated resolved
plugins file; they do not need to appear in
grounds.yaml. - Local path values are not shown in portal source labels. Portal shows a safe artifact label and records that the effective source was local.
