gradle-developer

Guides Gradle 9 build script changes in the apache/grails-core monorepo following its conventions.

2.9k|973|Updated Feb 10, 2010
One-click install
npx skills add https://github.com/apache/grails-core --skill gradle-developer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gradle-developer
Source: https://github.com/apache/grails-core/tree/main/.agents/skills/gradle-developer
Command: npx skills add https://github.com/apache/grails-core --skill gradle-developer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Editing Gradle build scripts in the apache/grails-core monorepo is risky because the repo intentionally diverges from generic Gradle best practices: it uses composite builds, custom BOM platforms, convention plugins, presence-based flags, and heavy projectDir remapping. This Skill encodes those repo-specific rules so build changes are correct on the first try instead of breaking configuration, caching, or publishing.

Core Features & Use Cases

  • Repo-specific build authoring: Write and modify build.gradle, settings.gradle, dependencies.gradle, and convention plugins exactly the way sibling modules do, including BOM platform() usage and the dependency-validator workflow.
  • Multi-build topology guidance: Navigate the root build, build-logic, grails-gradle, grails-forge, and end-to-end builds, including the three-step local publish-and-test flow against build/local-maven.
  • Gradle 9 hygiene enforcement: Avoid configuration-cache, afterEvaluate, task-input, and build-cache pitfalls documented from real production PRs.
  • Use Case: When adding a new published module, follow the checklist to register it in settings.gradle, copy a sibling build script, wire the correct BOM platform, and run scoped compile, test, and validateDependencyVersions tasks.

Quick Start

Ask the assistant to add a new subproject or bump a dependency version in the grails-core repository following its Gradle conventions.

Frequently Asked Questions about gradle-developer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new subproject to the grails-core Gradle build?

Include the project in root settings.gradle, set projectDir if the path differs from the name, copy a sibling module's build.gradle skeleton, wire the correct BOM platform, and run scoped compileGroovy, test, and validateDependencyVersions tasks for the new project.

How do I bump a dependency version in grails-core?

Check whether the Spring Boot BOM already manages the version; if Grails must own it, update the appropriate map in the root dependencies.gradle file, use the unversioned coordinate in module dependencies, then run validateDependencyVersions on affected modules.

Can I use the Spring dependency-management plugin in Grails 8 modules?

No. Grails 8 uses native Gradle platform() and enforcedPlatform() with the bom-property-overrides plugin instead. The only exception is the intentional regression fixture at grails-test-examples/spring-dependency-management.

Why does validateDependencyVersions fail after a dependency change?

The validator fails when the resolved version differs from the BOM-managed version in either direction. If a transitive resolves newer, bump the BOM pin; if a force or second platform pulls an older version, remove the force or align the platforms.

Does grails-core use Gradle version catalogs or configuration cache?

No. The monorepo deliberately avoids gradle/libs.versions.toml version catalogs, keeping versions in dependencies.gradle maps, and configuration cache is disabled until a tracked issue is resolved. Do not enable either without an issue-linked plan.

How do I upgrade the Gradle wrapper version across the repo?

Set the version in .sdkmanrc, run gradle -p gradle-bootstrap to regenerate and copy wrappers to grails-forge, grails-gradle, and end-to-end, then manually sync build-logic, profile skeletons, and forge generated-app wrapper assets, and update gradleToolingApiVersion.