From 08dd93d497edd6947a03abdf352ffad725d6a4ce Mon Sep 17 00:00:00 2001 From: Michael Yan Date: Mon, 18 Mar 2024 20:44:07 +0800 Subject: [PATCH] Fixes bug: ApplicationCommand in app/commands should be listed in Gradle tasks Closes gh-179 --- .../grails/gradle/plugin/core/GrailsGradlePlugin.groovy | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/grace-gradle-plugin/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy b/grace-gradle-plugin/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy index ac4d50b543..1ed319ab6c 100644 --- a/grace-gradle-plugin/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy +++ b/grace-gradle-plugin/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy @@ -245,7 +245,9 @@ class GrailsGradlePlugin extends GroovyPlugin { @CompileDynamic protected void configureApplicationCommands(Project project) { - List applicationContextCommands = GrailsFactoriesLoader.loadFactories(ApplicationCommand) + URL[] urls = [new File(project.buildDir, 'classes/groovy/main').toURI().toURL()] + ClassLoader classLoader = new URLClassLoader(urls, GrailsFactoriesLoader.classLoader) + List applicationContextCommands = GrailsFactoriesLoader.loadFactories(ApplicationCommand, classLoader) project.afterEvaluate { FileCollection fileCollection = buildClasspath(project, project.configurations.runtimeClasspath, project.configurations.console, project.configurations.profile) @@ -258,6 +260,8 @@ class GrailsGradlePlugin extends GroovyPlugin { commandTask.setDescription(commandDescription) commandTask.classpath = fileCollection commandTask.command = commandName + systemProperty 'spring.main.banner-mode', 'OFF' + systemProperty 'logging.level.ROOT', 'OFF' systemProperty Environment.KEY, System.getProperty(Environment.KEY, Environment.DEVELOPMENT.getName()) if (project.hasProperty('args')) { commandTask.args(CommandLineParser.translateCommandline(project.args)) @@ -574,7 +578,7 @@ class GrailsGradlePlugin extends GroovyPlugin { } protected FileCollection resolveClassesDirs(SourceSetOutput output, Project project) { - output?.classesDirs ?: project.files(new File(project.buildDir, 'classes/main')) + output?.classesDirs ?: project.files(new File(project.buildDir, 'classes/groovy/main')) } @CompileDynamic