Skip to content

Commit a80e5ef

Browse files
authored
fix: prevent double registration of configScript task (#391)
Add a guard to ensure the configScript task is registered only once, resolving an issue where applying multiple Gradle plugins lead to an error that the task is already created. Related to #388.
1 parent 11ee0eb commit a80e5ef

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,18 @@ class GrailsGradlePlugin extends GroovyPlugin {
144144

145145
configurePathingJar(project)
146146

147-
def configScriptTask = project.tasks.create('configScript')
148-
def configFile = project.layout.buildDirectory.file('config.groovy')
149-
configFile.get().asFile.delete()
150-
configScriptTask.outputs.file(configFile)
151-
addJavaTimeImport(project, configScriptTask)
152-
153-
project.tasks.withType(GroovyCompile).configureEach { GroovyCompile task ->
154-
task.dependsOn('configScript')
155-
def mergedConfigFile = project.tasks.named('configScript').get().outputs.files.singleFile
156-
if (mergedConfigFile.exists()) {
157-
task.groovyOptions.configurationScript = mergedConfigFile
147+
if (project.tasks.findByName('configScript') == null) {
148+
def configScriptTask = project.tasks.create('configScript')
149+
def configFile = project.layout.buildDirectory.file('config.groovy')
150+
configFile.get().asFile.delete()
151+
configScriptTask.outputs.file(configFile)
152+
addJavaTimeImport(project, configScriptTask)
153+
project.tasks.withType(GroovyCompile).configureEach { GroovyCompile task ->
154+
task.dependsOn('configScript')
155+
def mergedConfigFile = project.tasks.named('configScript').get().outputs.files.singleFile
156+
if (mergedConfigFile.exists()) {
157+
task.groovyOptions.configurationScript = mergedConfigFile
158+
}
158159
}
159160
}
160161
}

0 commit comments

Comments
 (0)