Centralize groovydoc configuration into GrailsGroovydocPlugin convention plugin#15421
Merged
jamesfredley merged 1 commit intofix/groovydoc-java-versionfrom Feb 20, 2026
Conversation
…ion plugin Move duplicated AntBuilder groovydoc execution, Matomo footer, documentation configuration registration, and task defaults into a shared convention plugin in build-logic. This eliminates ~490 lines of duplicated configuration across 8 build scripts while maintaining identical behavior. The plugin provides: - Documentation configuration registration with standard attributes - Common Groovydoc task defaults (author, timestamps, scripts) - AntBuilder-based execution with javaVersion support (Groovy 4.0.27+) - Matomo analytics footer - Source directory resolution from ext.groovydocSourceDirs or source sets - External documentation link support via ext.groovydocLinks - GrailsGroovydocExtension for per-project javaVersion control Build scripts retain project-specific configuration: dependencies, titles, source directories for aggregate tasks, and dynamic link resolution. Assisted-by: Claude Code <Claude@Claude.ai>
3c50821
into
fix/groovydoc-java-version
23 of 24 checks passed
Contributor
Author
|
Consolidated into PR #15420 - both commits now on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extracts the duplicated AntBuilder groovydoc configuration (introduced in PR #15420) into a reusable
GrailsGroovydocPluginconvention plugin inbuild-logic/, eliminating ~490 lines of duplicated build logic across 8 scripts.Depends on: PR #15420 (
fix/groovydoc-java-version)Changes
New files in
build-logic/GrailsGroovydocPlugin- Convention plugin (org.apache.grails.buildsrc.groovydoc) that:javaVersionsupportmainsource setext.groovydocLinksGroovydocAccessenum viaClass.forName(not on build-logic compile classpath)Property<T>/ plain-value API viaresolveGroovydocProperty()GrailsGroovydocExtension- Configurable extension with:javaVersion(default:JAVA_17) - target Java version for Groovydoc outputjavaVersionEnabled(default:true) - allows disabling for Groovy 3.x (Forge uses 3.0.25 which lacksjavaVersionsupport)Simplified build scripts
gradle/docs-dependencies.gradlegradle/docs-config.gradlegrails-gradle/gradle/docs-config.gradlegrails-forge/gradle/doc-config.gradlejavaVersionEnabled = false) + depsgrails-data-hibernate5/docs/build.gradlegrails-data-mongodb/docs/build.gradlegrails-doc/build.gradlegrails-data-docs/stage/build.gradleStats
Testing
./gradlew codeStylepassesjavaVersionEnabled = false)Resolves #15385