-
-
Notifications
You must be signed in to change notification settings - Fork 971
14977 - multiproject reloading support #15076
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
…ions prior to the standardization of `grails-bom`
…gins to the same gradle project
…ask dependency errors if the runtimeclasspath is changed
This was referenced Sep 17, 2025
This was
linked to
issues
Sep 17, 2025
This was
unlinked from
issues
Sep 17, 2025
…sExtension in the gradle build code
Contributor
Author
|
FYI: The majority of the files in this PR are copied test projects to ensure these changes work as expected. |
sbglasius
approved these changes
Sep 18, 2025
jamesfredley
approved these changes
Sep 18, 2025
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.
While multiproject reloading was possible before Grails 6, it was rather difficult to configure, the following had to be done:
grails.run.activewas setexplodedset totrueprior to the application of thegrails-pluginGradle pluginpluginsblock inside of thegrailsextension inbuild.gradleinstead of thedependenciesblockexplodedwas set on thegrailsextension inbuild.gradleof the Grails Application projectThis PR cleans up this process by adding a new gradle plugin
org.apache.grails.gradle.grails-exploded, now the following has to be true for reloading to work:org.apache.grails.gradle.grails-explodedpluginsblock of thegrailsextension inbuild.gradle:As part of this PR, I have also:
For the groovy compile configuration changes, the core issue is we need to be sure a non-cached version of the configuration file is generated whenever groovy would recompile / not cache. The issue is to do this we need to depend on the runtimeClasspath - if the build changes we need to rerun, if the project switches from application to a plugin we need to rerun, if the project name changes rerun, if the version changes rerun, etc. This means that any task that interacts with the runtime classpath, now needs to declare a dependency on our customization task. This really makes the build fragile and is the reason I've moved the configuration back into doFirst { }. When gradle changes the configuration to be provider based, I think we can revisit this.