This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch more-cli-updates2
in repository https://gitbox.apache.org/repos/asf/grails-core.git


The following commit(s) were added to refs/heads/more-cli-updates2 by this push:
     new 513b0787de Rework the distribution to use gradle's application and 
restore the classpath to pre-project merger.
513b0787de is described below

commit 513b0787de7c990b1235dcb0dd910d6c5ebca480
Author: James Daugherty <jdaughe...@jdresources.net>
AuthorDate: Mon May 5 23:45:25 2025 -0400

    Rework the distribution to use gradle's application and restore the 
classpath to pre-project merger.
---
 build.gradle                                    |  10 --
 gradle/assemble-config.gradle                   |  42 -------
 gradle/assemble-root-config.gradle              | 140 ------------------------
 grails-async/core/build.gradle                  |   1 -
 grails-async/gpars/build.gradle                 |   1 -
 grails-async/plugin/build.gradle                |   1 -
 grails-async/rxjava/build.gradle                |   1 -
 grails-async/rxjava2/build.gradle               |   1 -
 grails-async/rxjava3/build.gradle               |   1 -
 grails-bootstrap/build.gradle                   |   1 -
 grails-cache/build.gradle                       |   1 -
 grails-codecs-core/build.gradle                 |   1 -
 grails-codecs/build.gradle                      |   1 -
 grails-common/build.gradle                      |   1 -
 grails-console/build.gradle                     |   1 -
 grails-controllers/build.gradle                 |   1 -
 grails-converters/build.gradle                  |   1 -
 grails-core/build.gradle                        |   1 -
 grails-databinding-core/build.gradle            |   1 -
 grails-databinding/build.gradle                 |   1 -
 grails-datasource/build.gradle                  |   1 -
 grails-doc/src/en/guide/contributing/build.adoc |   6 +-
 grails-domain-class/build.gradle                |   1 -
 grails-encoder/build.gradle                     |   1 -
 grails-events/compat/build.gradle               |   1 -
 grails-events/core/build.gradle                 |   1 -
 grails-events/gpars/build.gradle                |   1 -
 grails-events/plugin/build.gradle               |   1 -
 grails-events/rxjava/build.gradle               |   1 -
 grails-events/rxjava2/build.gradle              |   1 -
 grails-events/rxjava3/build.gradle              |   1 -
 grails-events/spring/build.gradle               |   1 -
 grails-events/transforms/build.gradle           |   1 -
 grails-fields/build.gradle                      |   1 -
 grails-gsp/core/build.gradle                    |   1 -
 grails-gsp/grails-sitemesh3/build.gradle        |   1 -
 grails-gsp/grails-taglib/build.gradle           |   1 -
 grails-gsp/grails-web-gsp-taglib/build.gradle   |   1 -
 grails-gsp/grails-web-gsp/build.gradle          |   1 -
 grails-gsp/grails-web-jsp/build.gradle          |   1 -
 grails-gsp/grails-web-taglib/build.gradle       |   1 -
 grails-gsp/plugin/build.gradle                  |   1 -
 grails-i18n/build.gradle                        |   1 -
 grails-interceptors/build.gradle                |   1 -
 grails-logging/build.gradle                     |   1 -
 grails-mimetypes/build.gradle                   |   1 -
 grails-rest-transforms/build.gradle             |   1 -
 grails-scaffolding/build.gradle                 |   1 -
 grails-services/build.gradle                    |   1 -
 grails-shell-cli/build.gradle                   |  81 +++++++-------
 grails-spring/build.gradle                      |   1 -
 grails-test-core/build.gradle                   |   1 -
 grails-testing-support-core/build.gradle        |   1 -
 grails-testing-support-web/build.gradle         |   1 -
 grails-url-mappings/build.gradle                |   1 -
 grails-validation/build.gradle                  |   1 -
 grails-views-core/build.gradle                  |   1 -
 grails-views-gson/build.gradle                  |   1 -
 grails-views-markup/build.gradle                |   1 -
 grails-web-boot/build.gradle                    |   1 -
 grails-web-common/build.gradle                  |   1 -
 grails-web-core/build.gradle                    |   1 -
 grails-web-databinding/build.gradle             |   1 -
 grails-web-mvc/build.gradle                     |   1 -
 grails-web-url-mappings/build.gradle            |   1 -
 65 files changed, 44 insertions(+), 295 deletions(-)

diff --git a/build.gradle b/build.gradle
index 776037db54..d4ce1767e3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -37,7 +37,6 @@ ext {
     // Directories created during the build which are related
     // to turning the workspace root into a GRAILS_HOME
     distInstallDir = layout.buildDirectory.dir('dist-tmp')
-    homeDistDir = layout.projectDirectory.dir('dist')
     homeBinDir = layout.projectDirectory.dir('bin')
     homeConfDir = layout.projectDirectory.dir('conf')
     homeLibDir = layout.projectDirectory.dir('lib')
@@ -93,16 +92,7 @@ subprojects {
     apply from: 
rootProject.layout.projectDirectory.file('gradle/dependency-licenses.gradle')
 }
 
-tasks.register('clean', Delete).configure {
-    group = 'build'
-
-    doFirst {
-        delete(layout.buildDirectory, homeBinDir, homeConfDir, homeDistDir, 
homeLibDir)
-    }
-}
-
 apply {
-    from layout.projectDirectory.file('gradle/assemble-root-config.gradle')
     from layout.projectDirectory.file('gradle/publish-root-config.gradle')
     from layout.projectDirectory.file('gradle/rat-root-config.gradle')
 }
diff --git a/gradle/assemble-config.gradle b/gradle/assemble-config.gradle
deleted file mode 100644
index 3f31982225..0000000000
--- a/gradle/assemble-config.gradle
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-tasks.register('installToHomeDist').configure { Task task ->
-    task.inputs.files(tasks.named('jar'))
-    task.outputs.dir(distInstallDir)
-
-    doLast {
-        copy {
-            it.from layout.buildDirectory.dir('libs')
-            it.into distInstallDir
-            it.exclude '*sources.jar', '*-javadoc.jar'
-        }
-    }
-}
-
-tasks.withType(PublishToMavenLocal).configureEach {
-    it.dependsOn('installToHomeDist')
-    it.doLast {
-        copy {
-            from distInstallDir
-            into homeDistDir
-            includeEmptyDirs = false
-        }
-    }
-}
\ No newline at end of file
diff --git a/gradle/assemble-root-config.gradle 
b/gradle/assemble-root-config.gradle
deleted file mode 100644
index 67bdfbbb34..0000000000
--- a/gradle/assemble-root-config.gradle
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-import org.gradle.api.internal.plugins.StartScriptGenerator
-import org.gradle.api.internal.plugins.UnixStartScriptGenerator
-import org.gradle.api.internal.plugins.WindowsStartScriptGenerator
-
-tasks.register('collectCliDependencies').configure {
-    ext {
-        baseCachesDir = "$gradle.gradleUserHomeDir/caches"
-        cacheDir = "$baseCachesDir/modules-2"
-        metadata = "$cacheDir/metadata-2.1/descriptors"
-    }
-    doLast {
-        def projectNames = subprojects*.name
-        def seen = []
-        project(':grails-shell-cli').configurations.runtimeClasspath.with {
-            for (artifact in resolvedConfiguration.resolvedArtifacts) {
-                if (artifact in seen) continue
-                seen << artifact
-                def dependency = artifact.moduleVersion.id
-                if (!projectNames.contains(dependency.name)) {
-                    
syncCliDependencies.into("$dependency.group/$dependency.name/jars") {
-                        from artifact.file // this will trigger the actual 
download if necessary
-                    }
-                }
-            }
-        }
-    }
-}
-
-tasks.register('syncCliDependencies', Sync).configure {
-    dependsOn 'collectCliDependencies'
-    into homeLibDir
-    includeEmptyDirs = false
-    duplicatesStrategy = DuplicatesStrategy.INCLUDE
-}
-
-tasks.register('grailsCreateStartScripts', GrailsCreateStartScripts).configure 
{
-    description = 'Creates OS specific scripts to run grails-shell as a JVM 
application.'
-    mainClass = 'org.grails.cli.GrailsCli'
-    applicationName = 'grails'
-    defaultJvmOpts = ['-XX:+TieredCompilation', '-XX:TieredStopAtLevel=1', 
'-XX:CICompilerCount=3']
-    outputDir = rootProject.layout.projectDirectory.dir('bin').asFile
-    classpath = 
rootProject.childProjects['grails-shell-cli'].configurations.runtimeClasspath
-    projectArtifacts = 
rootProject.childProjects['grails-shell-cli'].tasks.named('jar').get().outputs.files.collect
 { "dist/${it.name}" } as List<String>
-    doLast {
-        ant.replace(file: 
rootProject.layout.projectDirectory.file('bin/grails').asFile, token: 
'media/gradle.icns', value: 'media/icons/grails.icns')
-        ant.chmod(file: 
rootProject.layout.projectDirectory.file('bin/grails').asFile, perm: 'ugo+rx')
-    }
-}
-
-class GrailsCreateStartScripts extends CreateStartScripts {
-
-    @Input
-    Collection<String> projectArtifacts = []
-
-    @TaskAction
-    void generate() {
-        Project grailsShellProject = 
project.rootProject.childProjects['grails-shell-cli']
-        def unixStartScriptGenerator = new UnixStartScriptGenerator()
-        unixStartScriptGenerator.template = 
grailsShellProject.resources.text.fromFile('src/main/resources/unixStartScript.txt')
-        def generator = new StartScriptGenerator(unixStartScriptGenerator, new 
WindowsStartScriptGenerator())
-        generator.applicationName = applicationName
-        generator.mainClassName = mainClass.get()
-        generator.defaultJvmOpts = defaultJvmOpts
-        generator.optsEnvironmentVar = optsEnvironmentVar
-        generator.exitEnvironmentVar = exitEnvironmentVar
-        generator.classpath = projectArtifacts + 
getClasspath().resolvedConfiguration.resolvedArtifacts.collect { artifact ->
-            def dependency = artifact.moduleVersion.id
-            String installedFile = 
"lib/$dependency.group/$dependency.name/jars/$artifact.file.name"
-            if (dependency.group.startsWith('org.apache.grails') && 
!project.file(installedFile).exists()) {
-                installedFile = "dist/$artifact.file.name"
-            }
-            installedFile
-        }
-        generator.scriptRelPath = "bin/${unixScript.name}"
-        generator.generateUnixScript(unixScript)
-        generator.generateWindowsScript(windowsScript)
-    }
-}
-
-tasks.register('install').configure { task ->
-    dependsOn 'syncCliDependencies', 'grailsCreateStartScripts'
-    subprojects { Project subproject ->
-        if (!(subproject.name in testProjects) && !(subproject.name in 
docProjects) && !(subproject.name in cliProjects) && !(subproject.name in 
profileProjects)) {
-            task.dependsOn("$subproject.name:publishToMavenLocal")
-        }
-    }
-}
-
-tasks.register('assemble', Zip).configure {
-    group = 'build'
-    dependsOn 'install'
-    destinationDirectory = 
rootProject.layout.buildDirectory.dir('distributions')
-    archiveBaseName = 'grails'
-    archiveAppendix = grailsVersion
-
-    exclude '**/CVS/**'
-
-    into("grails-$grailsVersion") {
-        from(rootProject.layout.projectDirectory) {
-            include 'bin/grails', 'bin/grails.bat', 'lib/', 
'media/icons/grails.icns', 'LICENSE', 'INSTALL', 'NOTICE'
-
-            def pathsToExclude = [
-                    'ant/bin', 'src/grails', 'src/war'
-            ]
-            docProjects.each { projectName ->
-                pathsToExclude << 
rootProject.projectDir.relativePath(project(projectName as String).projectDir)
-            }
-            testProjects.each { projectName ->
-                pathsToExclude << 
rootProject.projectDir.relativePath(project(projectName as String).projectDir)
-            }
-            cliProjects.each { projectName ->
-                pathsToExclude << 
rootProject.projectDir.relativePath(project(projectName as String).projectDir)
-            }
-            exclude pathsToExclude
-        }
-        from(homeDistDir) {
-            into 'dist'
-            exclude '*.zip'
-        }
-    }
-}
\ No newline at end of file
diff --git a/grails-async/core/build.gradle b/grails-async/core/build.gradle
index a5d9cc1e2a..6a4f2b9679 100644
--- a/grails-async/core/build.gradle
+++ b/grails-async/core/build.gradle
@@ -47,7 +47,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/gpars/build.gradle b/grails-async/gpars/build.gradle
index 28c68fb59b..ab599f3da3 100644
--- a/grails-async/gpars/build.gradle
+++ b/grails-async/gpars/build.gradle
@@ -47,7 +47,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/plugin/build.gradle b/grails-async/plugin/build.gradle
index 9cb4a9be65..f8ff94c033 100644
--- a/grails-async/plugin/build.gradle
+++ b/grails-async/plugin/build.gradle
@@ -57,7 +57,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava/build.gradle b/grails-async/rxjava/build.gradle
index 9d1d4ba9d6..b15111a395 100644
--- a/grails-async/rxjava/build.gradle
+++ b/grails-async/rxjava/build.gradle
@@ -43,7 +43,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava2/build.gradle 
b/grails-async/rxjava2/build.gradle
index fc29ec3a50..41732df8d9 100644
--- a/grails-async/rxjava2/build.gradle
+++ b/grails-async/rxjava2/build.gradle
@@ -43,7 +43,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-async/rxjava3/build.gradle 
b/grails-async/rxjava3/build.gradle
index 9cfce1a01c..3c62cff0dd 100644
--- a/grails-async/rxjava3/build.gradle
+++ b/grails-async/rxjava3/build.gradle
@@ -43,7 +43,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-bootstrap/build.gradle b/grails-bootstrap/build.gradle
index a068fa14fd..e62f53dcb5 100644
--- a/grails-bootstrap/build.gradle
+++ b/grails-bootstrap/build.gradle
@@ -83,7 +83,6 @@ processResources {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-cache/build.gradle b/grails-cache/build.gradle
index 03baa3a171..260c069189 100644
--- a/grails-cache/build.gradle
+++ b/grails-cache/build.gradle
@@ -60,7 +60,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-codecs-core/build.gradle b/grails-codecs-core/build.gradle
index f6c0329f95..4fa52b2bb4 100644
--- a/grails-codecs-core/build.gradle
+++ b/grails-codecs-core/build.gradle
@@ -54,7 +54,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-codecs/build.gradle b/grails-codecs/build.gradle
index 6ac5b38dc8..e0468e90ae 100644
--- a/grails-codecs/build.gradle
+++ b/grails-codecs/build.gradle
@@ -64,7 +64,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-common/build.gradle b/grails-common/build.gradle
index 6a45d6bc6e..3dadf85c54 100644
--- a/grails-common/build.gradle
+++ b/grails-common/build.gradle
@@ -53,7 +53,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-console/build.gradle b/grails-console/build.gradle
index e9d2c2b145..e2d0cc792d 100644
--- a/grails-console/build.gradle
+++ b/grails-console/build.gradle
@@ -67,7 +67,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-controllers/build.gradle b/grails-controllers/build.gradle
index 706034c77f..457a8f9748 100644
--- a/grails-controllers/build.gradle
+++ b/grails-controllers/build.gradle
@@ -74,7 +74,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-converters/build.gradle b/grails-converters/build.gradle
index 3a539420bd..c9a0d65d31 100644
--- a/grails-converters/build.gradle
+++ b/grails-converters/build.gradle
@@ -73,7 +73,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-core/build.gradle b/grails-core/build.gradle
index c41db481cd..e1d525c179 100644
--- a/grails-core/build.gradle
+++ b/grails-core/build.gradle
@@ -92,7 +92,6 @@ tasks.named('processResources', ProcessResources).configure { 
ProcessResources i
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-databinding-core/build.gradle 
b/grails-databinding-core/build.gradle
index 1fdcc706ea..4efb0bfcfb 100644
--- a/grails-databinding-core/build.gradle
+++ b/grails-databinding-core/build.gradle
@@ -57,7 +57,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-databinding/build.gradle b/grails-databinding/build.gradle
index 424e273b55..410535c324 100644
--- a/grails-databinding/build.gradle
+++ b/grails-databinding/build.gradle
@@ -74,7 +74,6 @@ tasks.named('compileTestGroovy').configure {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-datasource/build.gradle b/grails-datasource/build.gradle
index 06d2492939..c5fb199e6a 100644
--- a/grails-datasource/build.gradle
+++ b/grails-datasource/build.gradle
@@ -71,7 +71,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-doc/src/en/guide/contributing/build.adoc 
b/grails-doc/src/en/guide/contributing/build.adoc
index 3a77266b0e..299d6bfe01 100644
--- a/grails-doc/src/en/guide/contributing/build.adoc
+++ b/grails-doc/src/en/guide/contributing/build.adoc
@@ -19,7 +19,7 @@ under the License.
 
 If you're interested in contributing fixes and features to any part of grails, 
you will have to learn how to get hold of the project's source, build it and 
test it with your own applications. Before you start, make sure you have:
 
-* A JDK (11 or above)
+* A JDK (17 or above)
 * A git client
 
 Once you have all the pre-requisite packages installed, the next step is to 
download the Grails source code, which is hosted at http://github.com[GitHub] 
in several repositories owned by the http://github.com/grails["grails"; GitHub 
user]. This is a simple case of cloning the repository you're interested in. 
For example, to get the core framework run:
@@ -39,12 +39,12 @@ If you look at the project structure, you'll see that it 
doesn't look much like
 
 [source,groovy]
 ----
-./gradlew install
+./gradlew grails-shell-cli:installDist
 ----
 
 This will fetch all the standard dependencies required by Grails and then 
build a `GRAILS_HOME` installation. Note that this target skips the extensive 
collection of Grails test classes, which can take some time to complete.
 
-Once the above command has finished, simply set the `GRAILS_HOME` environment 
variable to the checkout directory and add the "bin" directory to your path. 
When you next type `grails` command to run, you'll be using the version you 
just built.
+Once the above command has finished, simply set the `GRAILS_HOME` environment 
variable to the directory `grails-shell-cli/build/install/grails` and add the 
`bin` directory to your path. When you next type `grails` command to run, 
you'll be using the version you just built.
 
 If you are using http://sdkman.io[SDKMAN] then that can also be used to work 
with this local installation via the following:
 
diff --git a/grails-domain-class/build.gradle b/grails-domain-class/build.gradle
index a0f0c0bb95..c53f0d33dd 100644
--- a/grails-domain-class/build.gradle
+++ b/grails-domain-class/build.gradle
@@ -74,7 +74,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-encoder/build.gradle b/grails-encoder/build.gradle
index a68f99c77c..73504efd32 100644
--- a/grails-encoder/build.gradle
+++ b/grails-encoder/build.gradle
@@ -58,7 +58,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/compat/build.gradle 
b/grails-events/compat/build.gradle
index 50bb142a8a..892c32cd60 100644
--- a/grails-events/compat/build.gradle
+++ b/grails-events/compat/build.gradle
@@ -38,7 +38,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-events/core/build.gradle b/grails-events/core/build.gradle
index ffbe5cf087..38d9198358 100644
--- a/grails-events/core/build.gradle
+++ b/grails-events/core/build.gradle
@@ -44,7 +44,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/gpars/build.gradle b/grails-events/gpars/build.gradle
index 036dfdbfd7..c94fee9aa6 100644
--- a/grails-events/gpars/build.gradle
+++ b/grails-events/gpars/build.gradle
@@ -45,7 +45,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/plugin/build.gradle 
b/grails-events/plugin/build.gradle
index 753fe0da8a..1530d73768 100644
--- a/grails-events/plugin/build.gradle
+++ b/grails-events/plugin/build.gradle
@@ -51,7 +51,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava/build.gradle 
b/grails-events/rxjava/build.gradle
index 7af4fd2db6..ebb69b7437 100644
--- a/grails-events/rxjava/build.gradle
+++ b/grails-events/rxjava/build.gradle
@@ -48,7 +48,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava2/build.gradle 
b/grails-events/rxjava2/build.gradle
index c7bef111a7..0697285af6 100644
--- a/grails-events/rxjava2/build.gradle
+++ b/grails-events/rxjava2/build.gradle
@@ -44,7 +44,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/rxjava3/build.gradle 
b/grails-events/rxjava3/build.gradle
index a9c76f098f..040c9bb162 100644
--- a/grails-events/rxjava3/build.gradle
+++ b/grails-events/rxjava3/build.gradle
@@ -44,7 +44,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/spring/build.gradle 
b/grails-events/spring/build.gradle
index 03ff6a9aa3..abdba35721 100644
--- a/grails-events/spring/build.gradle
+++ b/grails-events/spring/build.gradle
@@ -44,7 +44,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-events/transforms/build.gradle 
b/grails-events/transforms/build.gradle
index 91019fbd9b..6a43d17adf 100644
--- a/grails-events/transforms/build.gradle
+++ b/grails-events/transforms/build.gradle
@@ -61,7 +61,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-fields/build.gradle b/grails-fields/build.gradle
index 629653e952..c59422bdaf 100644
--- a/grails-fields/build.gradle
+++ b/grails-fields/build.gradle
@@ -60,7 +60,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/core/build.gradle b/grails-gsp/core/build.gradle
index 0d5f91ae05..30362e0b1f 100644
--- a/grails-gsp/core/build.gradle
+++ b/grails-gsp/core/build.gradle
@@ -90,7 +90,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-sitemesh3/build.gradle 
b/grails-gsp/grails-sitemesh3/build.gradle
index 4faad9dc8e..385e051bba 100644
--- a/grails-gsp/grails-sitemesh3/build.gradle
+++ b/grails-gsp/grails-sitemesh3/build.gradle
@@ -82,7 +82,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-taglib/build.gradle 
b/grails-gsp/grails-taglib/build.gradle
index a02c434bca..fdb81e6d1c 100644
--- a/grails-gsp/grails-taglib/build.gradle
+++ b/grails-gsp/grails-taglib/build.gradle
@@ -81,7 +81,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-gsp-taglib/build.gradle 
b/grails-gsp/grails-web-gsp-taglib/build.gradle
index 0f638256f7..6c2deb3629 100644
--- a/grails-gsp/grails-web-gsp-taglib/build.gradle
+++ b/grails-gsp/grails-web-gsp-taglib/build.gradle
@@ -60,7 +60,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-gsp/build.gradle 
b/grails-gsp/grails-web-gsp/build.gradle
index 6a1f058881..ffc612da76 100644
--- a/grails-gsp/grails-web-gsp/build.gradle
+++ b/grails-gsp/grails-web-gsp/build.gradle
@@ -128,7 +128,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-jsp/build.gradle 
b/grails-gsp/grails-web-jsp/build.gradle
index 53f143b0e5..63dbc6b172 100644
--- a/grails-gsp/grails-web-jsp/build.gradle
+++ b/grails-gsp/grails-web-jsp/build.gradle
@@ -109,7 +109,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/grails-web-taglib/build.gradle 
b/grails-gsp/grails-web-taglib/build.gradle
index d534aaea50..1f9d94d0fa 100644
--- a/grails-gsp/grails-web-taglib/build.gradle
+++ b/grails-gsp/grails-web-taglib/build.gradle
@@ -113,7 +113,6 @@ compileGroovy.doLast {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-gsp/plugin/build.gradle b/grails-gsp/plugin/build.gradle
index f816af05b1..9f21c86b1d 100644
--- a/grails-gsp/plugin/build.gradle
+++ b/grails-gsp/plugin/build.gradle
@@ -182,7 +182,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-i18n/build.gradle b/grails-i18n/build.gradle
index 82317701f9..a07554dfbb 100644
--- a/grails-i18n/build.gradle
+++ b/grails-i18n/build.gradle
@@ -64,7 +64,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-interceptors/build.gradle b/grails-interceptors/build.gradle
index f00ed0f708..9e74dd99d2 100644
--- a/grails-interceptors/build.gradle
+++ b/grails-interceptors/build.gradle
@@ -63,7 +63,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-logging/build.gradle b/grails-logging/build.gradle
index eeb78f7ce2..075f390df5 100644
--- a/grails-logging/build.gradle
+++ b/grails-logging/build.gradle
@@ -54,7 +54,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-mimetypes/build.gradle b/grails-mimetypes/build.gradle
index 9ab15b0227..127f78d775 100644
--- a/grails-mimetypes/build.gradle
+++ b/grails-mimetypes/build.gradle
@@ -62,7 +62,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-rest-transforms/build.gradle 
b/grails-rest-transforms/build.gradle
index 886b87cf8e..fa3402b68c 100644
--- a/grails-rest-transforms/build.gradle
+++ b/grails-rest-transforms/build.gradle
@@ -74,7 +74,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-scaffolding/build.gradle b/grails-scaffolding/build.gradle
index aec01e1797..b964c29d0d 100644
--- a/grails-scaffolding/build.gradle
+++ b/grails-scaffolding/build.gradle
@@ -44,7 +44,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-services/build.gradle b/grails-services/build.gradle
index 70b5e73de1..47b9df936c 100644
--- a/grails-services/build.gradle
+++ b/grails-services/build.gradle
@@ -65,7 +65,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-shell-cli/build.gradle b/grails-shell-cli/build.gradle
index 939ddc768a..48d5fc08c2 100644
--- a/grails-shell-cli/build.gradle
+++ b/grails-shell-cli/build.gradle
@@ -27,45 +27,10 @@ plugins {
 version = projectVersion
 group = 'org.apache.grails'
 
-application {
-    mainClass = 'org.grails.cli.GrailsCli'
-}
+configurations.register('shellCliDependencies').configure {
+    it.transitive = true
 
-configurations {
-    // This is a workaround that can optimize the performance of the Shell CLI 
by reducing the length of the CLASSPATH,
-    // while also solving the problem of the length limit of command line 
parameters in the Windows environment
-    // This can be removed when we solve the dependencies of grails-bootstrap, 
grails-shell-cli
-    runtimeClasspath {
-        exclude group: 'commons-codec', module: 'commons-codec'
-        exclude group: 'com.github.ben-manes.caffeine', module: 'caffeine'
-        exclude group: 'jakarta.annotation', module: 'jakarta.annotation-api'
-        exclude group: 'jakarta.inject', module: 'jakarta.inject-api'
-        exclude group: 'javax.annotation', module: 'javax.annotation-api'
-        exclude group: 'javax.inject', module: 'javax.inject'
-        exclude group: 'javax.persistence', module: 'javax.persistence-api'
-        exclude group: 'javax.transaction', module: 'javax.transaction-api'
-        exclude group: 'junit', module: 'junit'
-        exclude group: 'io.micrometer', module: 'micrometer-observation'
-        exclude group: 'io.micrometer', module: 'micrometer-commons'
-        exclude group: 'org.checkerframework', module: 'checker-qual'
-        exclude group: 'org.apache.ant', module: 'ant-antlr'
-        exclude group: 'org.apache.ant', module: 'ant-junit'
-        exclude group: 'org.apache.commons', module: 'commons-compress'
-        exclude group: 'org.apache.groovy', module: 'groovy-groovydoc'
-        exclude group: 'org.apache.groovy', module: 'groovy-jmx'
-        exclude group: 'org.codehaus.plexus', module: 'plexus-classworlds'
-        exclude group: 'org.codehaus.plexus', module: 
'plexus-component-annotations'
-        exclude group: 'org.codehaus.plexus', module: 'plexus-sec-dispatcher'
-        exclude group: 'org.hamcrest', module: 'hamcrest'
-        exclude group: 'org.hamcrest', module: 'hamcrest-core'
-        exclude group: 'org.javassist', module: 'javassist'
-        exclude group: 'org.springframework', module: 'spring-aop'
-        exclude group: 'org.springframework', module: 'spring-expression'
-        exclude group: 'org.springframework', module: 'spring-jcl'
-        exclude group: 'org.springframework', module: 'spring-tx'
-        exclude group: 'org.springframework', module: 'spring-web'
-        exclude group: 'org.springframework.boot', module: 
'spring-boot-autoconfigure'
-    }
+    configurations.runtimeClasspath.extendsFrom(it)
 }
 
 dependencies {
@@ -144,13 +109,49 @@ dependencies {
     // Required by Spock's Mocking
     testRuntimeOnly 'net.bytebuddy:byte-buddy'
     testImplementation 'org.objenesis:objenesis'
+
+    // any project that should be included in the end distribution should be 
included here
+    // historically these were the included projects so we have trimmed them 
back down to pre7.0
+    shellCliDependencies project(':grails-codecs-core')
+    shellCliDependencies project(':grails-codecs')
+    shellCliDependencies project(':grails-console')
+    shellCliDependencies project(':grails-controllers')
+    shellCliDependencies project(':grails-converters')
+    shellCliDependencies project(':grails-core')
+    shellCliDependencies project(':grails-databinding-core')
+    shellCliDependencies project(':grails-datasource')
+    shellCliDependencies project(':grails-domain-class')
+    shellCliDependencies project(':grails-i18n')
+    shellCliDependencies project(':grails-interceptors')
+    shellCliDependencies project(':grails-mimetypes')
+    shellCliDependencies project(':grails-rest-transforms')
+    shellCliDependencies project(':grails-services')
+    shellCliDependencies project(':grails-test-core')
+    shellCliDependencies project(':grails-testing-support-core')
+    shellCliDependencies project(':grails-url-mappings')
+    shellCliDependencies project(':grails-validation')
+    shellCliDependencies project(':grails-web-boot')
+    shellCliDependencies project(':grails-web-common')
+    shellCliDependencies project(':grails-web-core')
+    shellCliDependencies project(':grails-web-databinding')
+    shellCliDependencies project(':grails-web-url-mappings')
 }
 
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
-}
\ No newline at end of file
+}
+
+extensions.configure(JavaApplication) {
+    it.applicationName = 'grails'
+    it.mainClass = 'org.grails.cli.GrailsCli'
+    it.applicationDefaultJvmArgs = ['-XX:+TieredCompilation', 
'-XX:TieredStopAtLevel=1', '-XX:CICompilerCount=3']
+    it.applicationDistribution.with {
+        it.from(rootProject.layout.projectDirectory.file('LICENSE')) { it.into 
'' }
+        it.from(rootProject.layout.projectDirectory.file('NOTICE')) { it.into 
'' }
+        it.from(rootProject.layout.projectDirectory.file('INSTALL')) { it.into 
'' }
+    }
+}
diff --git a/grails-spring/build.gradle b/grails-spring/build.gradle
index 399628d36b..91b1a53d40 100644
--- a/grails-spring/build.gradle
+++ b/grails-spring/build.gradle
@@ -58,7 +58,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-test-core/build.gradle b/grails-test-core/build.gradle
index c406b28c0b..14b625c5e3 100644
--- a/grails-test-core/build.gradle
+++ b/grails-test-core/build.gradle
@@ -85,7 +85,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-testing-support-core/build.gradle 
b/grails-testing-support-core/build.gradle
index 7f75bac244..e508918187 100644
--- a/grails-testing-support-core/build.gradle
+++ b/grails-testing-support-core/build.gradle
@@ -75,7 +75,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-testing-support-web/build.gradle 
b/grails-testing-support-web/build.gradle
index c088969a42..41509a8040 100755
--- a/grails-testing-support-web/build.gradle
+++ b/grails-testing-support-web/build.gradle
@@ -46,7 +46,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-url-mappings/build.gradle b/grails-url-mappings/build.gradle
index cf83b41e71..7b3f7144a8 100644
--- a/grails-url-mappings/build.gradle
+++ b/grails-url-mappings/build.gradle
@@ -65,7 +65,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
 }
\ No newline at end of file
diff --git a/grails-validation/build.gradle b/grails-validation/build.gradle
index f13287c6be..d3a7c7f2f2 100644
--- a/grails-validation/build.gradle
+++ b/grails-validation/build.gradle
@@ -63,7 +63,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-core/build.gradle b/grails-views-core/build.gradle
index efe57fd776..b97851c866 100644
--- a/grails-views-core/build.gradle
+++ b/grails-views-core/build.gradle
@@ -53,7 +53,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-gson/build.gradle b/grails-views-gson/build.gradle
index fbd3b5818f..e81f06530c 100644
--- a/grails-views-gson/build.gradle
+++ b/grails-views-gson/build.gradle
@@ -65,7 +65,6 @@ tasks.named('sourcesJar', Jar).configure {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-views-markup/build.gradle b/grails-views-markup/build.gradle
index 5bb3623f01..99a32997c7 100644
--- a/grails-views-markup/build.gradle
+++ b/grails-views-markup/build.gradle
@@ -54,7 +54,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-boot/build.gradle b/grails-web-boot/build.gradle
index 29899285f2..c2fe2aaf83 100644
--- a/grails-web-boot/build.gradle
+++ b/grails-web-boot/build.gradle
@@ -68,7 +68,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-common/build.gradle b/grails-web-common/build.gradle
index 782cb4b137..703eaac6ce 100644
--- a/grails-web-common/build.gradle
+++ b/grails-web-common/build.gradle
@@ -78,7 +78,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-core/build.gradle b/grails-web-core/build.gradle
index 9a8c1ab9e2..027588c513 100644
--- a/grails-web-core/build.gradle
+++ b/grails-web-core/build.gradle
@@ -72,7 +72,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-databinding/build.gradle 
b/grails-web-databinding/build.gradle
index 9883dd71aa..1d6e8d4e7f 100644
--- a/grails-web-databinding/build.gradle
+++ b/grails-web-databinding/build.gradle
@@ -71,7 +71,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-mvc/build.gradle b/grails-web-mvc/build.gradle
index 99b7e8f8fe..6f9bad0ba5 100644
--- a/grails-web-mvc/build.gradle
+++ b/grails-web-mvc/build.gradle
@@ -63,7 +63,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
diff --git a/grails-web-url-mappings/build.gradle 
b/grails-web-url-mappings/build.gradle
index b1e828c1de..f9b3bf36ef 100644
--- a/grails-web-url-mappings/build.gradle
+++ b/grails-web-url-mappings/build.gradle
@@ -76,7 +76,6 @@ dependencies {
 apply {
     // java-configuration must be applied first since tasks are now lazy 
registered
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
-    from 
rootProject.layout.projectDirectory.file('gradle/assemble-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')
     from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')

Reply via email to