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 f703759babf..be8125241ab 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 @@ -23,13 +23,9 @@ import javax.inject.Inject import groovy.transform.CompileDynamic import groovy.transform.CompileStatic -import org.gradle.api.DefaultTask -import org.gradle.api.attributes.AttributeMatchingStrategy - -import io.spring.gradle.dependencymanagement.DependencyManagementPlugin -import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension import org.apache.tools.ant.filters.EscapeUnicode import org.apache.tools.ant.filters.ReplaceTokens +import org.gradle.api.DefaultTask import org.gradle.api.GradleException import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Plugin @@ -39,11 +35,11 @@ import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyResolveDetails import org.gradle.api.artifacts.DependencySet +import org.gradle.api.attributes.AttributeMatchingStrategy import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.file.FileCollection import org.gradle.api.file.RegularFile import org.gradle.api.plugins.ExtraPropertiesExtension -import org.gradle.api.plugins.GroovyPlugin import org.gradle.api.provider.Provider import org.gradle.api.tasks.AbstractCopyTask import org.gradle.api.tasks.JavaExec @@ -57,6 +53,8 @@ import org.gradle.language.jvm.tasks.ProcessResources import org.gradle.process.JavaForkOptions import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry +import io.spring.gradle.dependencymanagement.DependencyManagementPlugin +import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension import org.springframework.boot.gradle.dsl.SpringBootExtension import org.springframework.boot.gradle.plugin.ResolveMainClassName import org.springframework.boot.gradle.plugin.SpringBootPlugin @@ -86,7 +84,7 @@ import org.grails.io.support.FactoriesLoaderSupport * @author Graeme Rocher */ @CompileStatic -class GrailsGradlePlugin extends GroovyPlugin { +class GrailsGradlePlugin implements Plugin { public static final String APPLICATION_CONTEXT_COMMAND_CLASS = 'grails.dev.commands.ApplicationCommand' @@ -101,6 +99,9 @@ class GrailsGradlePlugin extends GroovyPlugin { } void apply(Project project) { + + project.pluginManager.apply('groovy') + // validate that only an app or a plugin is registered, and never both OnlyOneGrailsPlugin marker = (OnlyOneGrailsPlugin) project.getExtensions().findByName(OnlyOneGrailsPlugin.name) if (marker) { @@ -111,10 +112,6 @@ class GrailsGradlePlugin extends GroovyPlugin { // reset the environment to ensure it is resolved again for each invocation Environment.reset() - if (!project.tasks.names.contains('compileGroovy')) { - super.apply(project) - } - excludeDependencies(project) configureProfile(project) diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPagePlugin.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPagePlugin.groovy index b0527c2f80f..32552c62b65 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPagePlugin.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPagePlugin.groovy @@ -46,6 +46,12 @@ class GroovyPagePlugin implements Plugin { @Override void apply(Project project) { + project.pluginManager.withPlugin('groovy') { + configureProject(project) + } + } + + private void configureProject(Project project) { TaskContainer tasks = project.tasks project.configurations.register('gspCompile') diff --git a/grails-gsp/grails-layout/build.gradle b/grails-gsp/grails-layout/build.gradle index ce8c5a4e37f..0d1abfaa2a2 100644 --- a/grails-gsp/grails-layout/build.gradle +++ b/grails-gsp/grails-layout/build.gradle @@ -17,7 +17,6 @@ * under the License. */ plugins { - id 'groovy' id 'java-library' id 'project-report' id 'org.apache.grails.buildsrc.properties' diff --git a/grails-test-examples/cache/build.gradle b/grails-test-examples/cache/build.gradle index eded39cad51..2e5d4188be6 100644 --- a/grails-test-examples/cache/build.gradle +++ b/grails-test-examples/cache/build.gradle @@ -18,7 +18,6 @@ */ plugins { - id 'groovy' id 'org.apache.grails.buildsrc.properties' id 'org.apache.grails.buildsrc.compile' } diff --git a/grails-test-examples/external-configuration/build.gradle b/grails-test-examples/external-configuration/build.gradle index 20281d4671c..da91d9e7b53 100644 --- a/grails-test-examples/external-configuration/build.gradle +++ b/grails-test-examples/external-configuration/build.gradle @@ -21,7 +21,6 @@ plugins { id 'org.apache.grails.buildsrc.compile' } -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' version = '0.1' diff --git a/grails-test-examples/geb-gebconfig/build.gradle b/grails-test-examples/geb-gebconfig/build.gradle index 2ebe7428932..59a45c93b9b 100644 --- a/grails-test-examples/geb-gebconfig/build.gradle +++ b/grails-test-examples/geb-gebconfig/build.gradle @@ -18,7 +18,6 @@ */ plugins { - id 'groovy' id 'org.apache.grails.buildsrc.properties' id 'org.apache.grails.buildsrc.compile' } diff --git a/grails-test-examples/geb/build.gradle b/grails-test-examples/geb/build.gradle index 55526a65f3d..cc98dddcd24 100644 --- a/grails-test-examples/geb/build.gradle +++ b/grails-test-examples/geb/build.gradle @@ -17,7 +17,6 @@ * under the License. */ plugins { - id 'groovy' id 'org.apache.grails.buildsrc.properties' id 'org.apache.grails.buildsrc.compile' } diff --git a/grails-test-examples/mongodb/base/build.gradle b/grails-test-examples/mongodb/base/build.gradle index 014d4ced574..d5d9c468338 100644 --- a/grails-test-examples/mongodb/base/build.gradle +++ b/grails-test-examples/mongodb/base/build.gradle @@ -24,7 +24,6 @@ plugins { version = projectVersion group = 'examples' -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' apply plugin: 'cloud.wondrify.asset-pipeline' diff --git a/grails-test-examples/mongodb/database-per-tenant/build.gradle b/grails-test-examples/mongodb/database-per-tenant/build.gradle index be074be73ca..09dca340857 100644 --- a/grails-test-examples/mongodb/database-per-tenant/build.gradle +++ b/grails-test-examples/mongodb/database-per-tenant/build.gradle @@ -24,7 +24,6 @@ plugins { version = projectVersion group = 'examples.mongo.tenant' -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' apply plugin: 'cloud.wondrify.asset-pipeline' diff --git a/grails-test-examples/mongodb/gson-templates/build.gradle b/grails-test-examples/mongodb/gson-templates/build.gradle index 615c7fa8b1c..618181b4d9b 100644 --- a/grails-test-examples/mongodb/gson-templates/build.gradle +++ b/grails-test-examples/mongodb/gson-templates/build.gradle @@ -24,7 +24,6 @@ plugins { version = projectVersion group = 'examples' -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' apply plugin: 'cloud.wondrify.asset-pipeline' diff --git a/grails-test-examples/mongodb/hibernate5/build.gradle b/grails-test-examples/mongodb/hibernate5/build.gradle index d6b5189ad50..357e8492ec8 100644 --- a/grails-test-examples/mongodb/hibernate5/build.gradle +++ b/grails-test-examples/mongodb/hibernate5/build.gradle @@ -24,7 +24,6 @@ plugins { version = projectVersion group = 'examples' -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' apply plugin: 'cloud.wondrify.asset-pipeline' diff --git a/grails-test-examples/mongodb/test-data-service/build.gradle b/grails-test-examples/mongodb/test-data-service/build.gradle index 5676de1ea26..abcc8cdb90a 100644 --- a/grails-test-examples/mongodb/test-data-service/build.gradle +++ b/grails-test-examples/mongodb/test-data-service/build.gradle @@ -24,7 +24,6 @@ plugins { version = projectVersion group = 'examples' -apply plugin: 'groovy' apply plugin: 'org.apache.grails.gradle.grails-web' dependencies { diff --git a/grails-test-examples/scaffolding/build.gradle b/grails-test-examples/scaffolding/build.gradle index 89b6779c934..830c66e7ea5 100644 --- a/grails-test-examples/scaffolding/build.gradle +++ b/grails-test-examples/scaffolding/build.gradle @@ -18,7 +18,6 @@ */ plugins { - id 'groovy' id 'org.apache.grails.buildsrc.properties' id 'org.apache.grails.gradle.grails-gsp' id 'org.apache.grails.gradle.grails-web' diff --git a/grails-test-examples/views-functional-tests/build.gradle b/grails-test-examples/views-functional-tests/build.gradle index 369919c05cc..61115167424 100644 --- a/grails-test-examples/views-functional-tests/build.gradle +++ b/grails-test-examples/views-functional-tests/build.gradle @@ -18,7 +18,6 @@ */ plugins { - id 'groovy' id 'org.apache.grails.buildsrc.properties' id 'org.apache.grails.gradle.grails-gsp' id 'org.apache.grails.gradle.grails-web'