This is an automated email from the ASF dual-hosted git repository. matrei pushed a commit to branch issue-15286 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 48ba3b2c79b1c7b5868da7cf783b7b8433848dcc Author: Mattias Reichel <[email protected]> AuthorDate: Tue Dec 16 16:37:43 2025 +0100 fix: add app class to `urlMappingsReport` task args --- .../gradle/plugin/core/GrailsGradlePlugin.groovy | 11 +++++++- .../gradle/plugin/web/GrailsWebGradlePlugin.groovy | 30 ++++++++++++---------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy index b7c5c5d37d..31ca753ea2 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy @@ -173,7 +173,7 @@ class GrailsGradlePlugin extends GroovyPlugin { } } - private static Provider<String> getMainClassProvider(Project project) { + protected static Provider<String> getMainClassProvider(Project project) { Provider<FindMainClassTask> findMainClassTask = project.tasks.named('findMainClass', FindMainClassTask) project.provider { File cacheFile = findMainClassTask.get().mainClassCacheFile.orNull?.asFile @@ -855,6 +855,15 @@ class GrailsGradlePlugin extends GroovyPlugin { fileCollection } + protected FileCollection buildClasspath(Project project, String... configurationNames) { + buildClasspath( + project, + configurationNames.collect { + project.configurations.named(it).get() + } as Configuration[] + ) + } + @CompileStatic private static final class OnlyOneGrailsPlugin { String pluginClassname diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/web/GrailsWebGradlePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/web/GrailsWebGradlePlugin.groovy index a42fe686df..eb210b1b9f 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/web/GrailsWebGradlePlugin.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/web/GrailsWebGradlePlugin.groovy @@ -20,12 +20,10 @@ package org.grails.gradle.plugin.web import javax.inject.Inject -import groovy.transform.CompileDynamic import groovy.transform.CompileStatic import org.gradle.api.Project -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.TaskContainer +import org.gradle.process.CommandLineArgumentProvider import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import grails.util.Environment @@ -46,19 +44,25 @@ class GrailsWebGradlePlugin extends GrailsGradlePlugin { super(registry) } - @CompileDynamic @Override void apply(Project project) { super.apply(project) - - TaskContainer taskContainer = project.tasks - if (taskContainer.findByName('urlMappingsReport') == null) { - FileCollection fileCollection = buildClasspath(project, project.configurations.runtimeClasspath, project.configurations.console) - taskContainer.create('urlMappingsReport', ApplicationContextCommandTask) { - classpath = fileCollection - systemProperty(Environment.KEY, System.getProperty(Environment.KEY, Environment.DEVELOPMENT.getName())) - command = 'url-mappings-report' - } + project.tasks.register('urlMappingsReport', ApplicationContextCommandTask) { task -> + task.classpath = buildClasspath( + project, + 'runtimeClasspath', 'console' + ) + task.systemProperty( + Environment.KEY, + System.getProperty( + Environment.KEY, + Environment.DEVELOPMENT.name + ) + ) + def appClassProvider = GrailsGradlePlugin.getMainClassProvider(project) + task.argumentProviders.add({ + ['url-mappings-report', appClassProvider.get()] + } as CommandLineArgumentProvider) } } }
