You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2022/08/29 06:28:37 UTC

[groovy] 03/07: Enable typesafe project accessors

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

paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 908b4bdbfd0b657abc6d92d292f7689f6e092e7f
Author: Goooler <wa...@gmail.com>
AuthorDate: Sun Aug 14 00:57:38 2022 +0800

    Enable typesafe project accessors
---
 build.gradle                                             | 16 ++++++++--------
 .../main/groovy/org.apache.groovy-distribution.gradle    |  8 ++++----
 .../src/main/groovy/org.apache.groovy-documented.gradle  |  4 ++--
 settings.gradle                                          |  2 ++
 subprojects/groovy-ant/build.gradle                      |  6 +++---
 subprojects/groovy-astbuilder/build.gradle               |  2 +-
 subprojects/groovy-binary/build.gradle                   |  2 +-
 subprojects/groovy-cli-commons/build.gradle              |  4 ++--
 subprojects/groovy-cli-picocli/build.gradle              |  4 ++--
 subprojects/groovy-console/build.gradle                  |  8 ++++----
 subprojects/groovy-contracts/build.gradle                |  4 ++--
 subprojects/groovy-datetime/build.gradle                 |  4 ++--
 subprojects/groovy-dateutil/build.gradle                 |  2 +-
 subprojects/groovy-docgenerator/build.gradle             |  4 ++--
 subprojects/groovy-ginq/build.gradle                     |  8 ++++----
 subprojects/groovy-groovydoc/build.gradle                |  8 ++++----
 subprojects/groovy-groovysh/build.gradle                 |  8 ++++----
 subprojects/groovy-jmx/build.gradle                      |  4 ++--
 subprojects/groovy-json/build.gradle                     |  6 +++---
 subprojects/groovy-jsr223/build.gradle                   |  2 +-
 subprojects/groovy-macro-library/build.gradle            |  4 ++--
 subprojects/groovy-macro/build.gradle                    |  2 +-
 subprojects/groovy-nio/build.gradle                      |  2 +-
 subprojects/groovy-servlet/build.gradle                  |  8 ++++----
 subprojects/groovy-sql/build.gradle                      |  4 ++--
 subprojects/groovy-swing/build.gradle                    |  4 ++--
 subprojects/groovy-templates/build.gradle                |  4 ++--
 subprojects/groovy-test-junit5/build.gradle              |  2 +-
 subprojects/groovy-test/build.gradle                     |  2 +-
 subprojects/groovy-testng/build.gradle                   |  2 +-
 subprojects/groovy-toml/build.gradle                     |  6 +++---
 subprojects/groovy-typecheckers/build.gradle             |  2 +-
 subprojects/groovy-xml/build.gradle                      |  4 ++--
 subprojects/groovy-yaml/build.gradle                     |  6 +++---
 subprojects/stress/build.gradle                          |  2 +-
 subprojects/tests-preview/build.gradle                   |  2 +-
 36 files changed, 82 insertions(+), 80 deletions(-)

diff --git a/build.gradle b/build.gradle
index 74df10a84d..327df99458 100644
--- a/build.gradle
+++ b/build.gradle
@@ -111,12 +111,12 @@ dependencies {
         exclude(group: 'org.codehaus.groovy', module: 'groovy-all')
     }
 
-    testImplementation project(':groovy-ant')
-    testImplementation project(':groovy-xml')
-    testImplementation project(':groovy-json')
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-macro')
-    testImplementation project(':groovy-dateutil')
+    testImplementation projects.groovyAnt
+    testImplementation projects.groovyXml
+    testImplementation projects.groovyJson
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyMacro
+    testImplementation projects.groovyDateutil
     testImplementation "jmock:jmock:${versions.jmock}"
     testImplementation "jmock:jmock-cglib:${versions.jmock}"
     testImplementation "net.jcip:jcip-annotations:${versions.jcipAnnotations}"
@@ -126,8 +126,8 @@ dependencies {
     testImplementation "org.slf4j:jcl-over-slf4j:${versions.slf4j}"
     testImplementation "com.thoughtworks.qdox:qdox:${versions.qdox}"
 
-    testFixturesImplementation project(':groovy-xml')
-    testFixturesImplementation project(':groovy-test')
+    testFixturesImplementation projects.groovyXml
+    testFixturesImplementation projects.groovyTest
     testFixturesImplementation "xmlunit:xmlunit:${versions.xmlunit}"
 
     tools "com.eed3si9n.jarjar:jarjar:${versions.jarjar}"
diff --git a/buildSrc/src/main/groovy/org.apache.groovy-distribution.gradle b/buildSrc/src/main/groovy/org.apache.groovy-distribution.gradle
index ab3e993acc..2e4ff94bfc 100644
--- a/buildSrc/src/main/groovy/org.apache.groovy-distribution.gradle
+++ b/buildSrc/src/main/groovy/org.apache.groovy-distribution.gradle
@@ -107,15 +107,15 @@ dependencies {
             requireCapability 'org.apache.groovy:groovy-logging'
         }
     }
-    doc project(":groovy-all")
-    docgeneratorTool project(":groovy-docgenerator")
+    doc projects.groovyAll
+    docgeneratorTool projects.groovyDocgenerator
 }
 
 def docGDK = tasks.register('docGDK', DocGDK) {
     classpath.from configurations.docgeneratorTool
     classes.set(distributionExtension.docgeneratorClasses)
-    resources.from project(':groovy-docgenerator').file('src/main/resources/org/apache/groovy/docgenerator/groovy.ico')
-    resources.from project(':groovy-docgenerator').file('src/main/resources/org/apache/groovy/docgenerator/stylesheet.css')
+    resources.from projects.groovyDocgenerator.dependencyProject.file('src/main/resources/org/apache/groovy/docgenerator/groovy.ico')
+    resources.from projects.groovyDocgenerator.dependencyProject.file('src/main/resources/org/apache/groovy/docgenerator/stylesheet.css')
 }
 
 def distBin = tasks.register('distBin', Zip) {
diff --git a/buildSrc/src/main/groovy/org.apache.groovy-documented.gradle b/buildSrc/src/main/groovy/org.apache.groovy-documented.gradle
index 6e3b5e2777..fbf6da1912 100644
--- a/buildSrc/src/main/groovy/org.apache.groovy-documented.gradle
+++ b/buildSrc/src/main/groovy/org.apache.groovy-documented.gradle
@@ -38,8 +38,8 @@ configurations {
 }
 
 dependencies {
-    groovydocClasspath project(":groovy-groovydoc")
-    groovydocClasspath project(":groovy-ant")
+    groovydocClasspath projects.groovyGroovydoc
+    groovydocClasspath projects.groovyAnt
 }
 
 tasks.withType(Javadoc).configureEach {
diff --git a/settings.gradle b/settings.gradle
index ee0e934b2a..e0c59c7590 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -37,6 +37,8 @@ gradleEnterprise {
     }
 }
 
+enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
+
 def subprojects = [
         'groovy-all',
         'groovy-ant',
diff --git a/subprojects/groovy-ant/build.gradle b/subprojects/groovy-ant/build.gradle
index e7873c168f..13fb37c546 100644
--- a/subprojects/groovy-ant/build.gradle
+++ b/subprojects/groovy-ant/build.gradle
@@ -31,11 +31,11 @@ dependencies {
     implementation "org.apache.ant:ant-launcher:${versions.ant}"
     implementation "org.apache.ant:ant-antlr:${versions.ant}"
     // for groovydoc ant command
-    implementation project(':groovy-groovydoc'), {
+    implementation projects.groovyGroovydoc, {
         transitive = false
     }
     compileOnly "org.ow2.asm:asm-tree:${versions.asm}" // VerifyClass
     compileOnly "org.ow2.asm:asm-util:${versions.asm}" // VerifyClass
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-xml')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyXml
 }
diff --git a/subprojects/groovy-astbuilder/build.gradle b/subprojects/groovy-astbuilder/build.gradle
index 65bf092361..e42fe5f45f 100644
--- a/subprojects/groovy-astbuilder/build.gradle
+++ b/subprojects/groovy-astbuilder/build.gradle
@@ -22,7 +22,7 @@ plugins {
 
 dependencies {
     api rootProject // AstBuilderTransformation publicly references numerous core classes
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-binary/build.gradle b/subprojects/groovy-binary/build.gradle
index 44f6ce1337..46c87b1d0c 100644
--- a/subprojects/groovy-binary/build.gradle
+++ b/subprojects/groovy-binary/build.gradle
@@ -96,7 +96,7 @@ distribution {
                 fileMode = 0755
                 exclude 'groovy.icns'
             }
-            from project(':groovy-docgenerator').file('src/main/resources/org/apache/groovy/docgenerator/groovy.ico')
+            from projects.groovyDocgenerator.dependencyProject.file('src/main/resources/org/apache/groovy/docgenerator/groovy.ico')
         }
         into('licenses') {
             from rootProject.file('licenses')
diff --git a/subprojects/groovy-cli-commons/build.gradle b/subprojects/groovy-cli-commons/build.gradle
index 1894ce5be4..51f9135904 100644
--- a/subprojects/groovy-cli-commons/build.gradle
+++ b/subprojects/groovy-cli-commons/build.gradle
@@ -23,8 +23,8 @@ plugins {
 dependencies {
     api rootProject // CliBuilder uses Option...
     implementation "commons-cli:commons-cli:${versions.commonsCli}"
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-dateutil')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyDateutil
     testRuntimeOnly testFixtures(project(":"))
 }
 
diff --git a/subprojects/groovy-cli-picocli/build.gradle b/subprojects/groovy-cli-picocli/build.gradle
index 48925908b5..0b62385bb0 100644
--- a/subprojects/groovy-cli-picocli/build.gradle
+++ b/subprojects/groovy-cli-picocli/build.gradle
@@ -23,6 +23,6 @@ plugins {
 dependencies {
     api rootProject   // CliBuilder uses Option...
     implementation "info.picocli:picocli:${versions.picocli}"
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-dateutil')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyDateutil
 }
diff --git a/subprojects/groovy-console/build.gradle b/subprojects/groovy-console/build.gradle
index 54e28043b4..83b9825f09 100644
--- a/subprojects/groovy-console/build.gradle
+++ b/subprojects/groovy-console/build.gradle
@@ -25,13 +25,13 @@ dependencies {
     implementation "com.github.javaparser:javaparser-core:${versions.javaParser}"
     implementation "org.ow2.asm:asm-util:${versions.asm}"
     implementation "org.abego.treelayout:org.abego.treelayout.core:${versions.treelayout}"
-    implementation project(':groovy-swing')
-    implementation project(':groovy-templates')
+    implementation projects.groovySwing
+    implementation projects.groovyTemplates
     implementation ("org.apache.ivy:ivy:${versions.ivy}") {
         transitive = false
     }
-    testImplementation project(':groovy-test')
-    testImplementation testFixtures(project(':groovy-swing'))
+    testImplementation projects.groovyTest
+    testImplementation testFixtures(projects.groovySwing)
 
     groovyCompilerClasspath(project(":")) {
         capabilities {
diff --git a/subprojects/groovy-contracts/build.gradle b/subprojects/groovy-contracts/build.gradle
index 864ff1e892..54e91e9b05 100644
--- a/subprojects/groovy-contracts/build.gradle
+++ b/subprojects/groovy-contracts/build.gradle
@@ -23,8 +23,8 @@ plugins {
 dependencies {
     api rootProject // ASTMatcher uses ASTNode
 
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-templates')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyTemplates
     testImplementation("org.spockframework:spock-junit4:${versions.spock}") {
         exclude group: 'org.codehaus.groovy'
     }
diff --git a/subprojects/groovy-datetime/build.gradle b/subprojects/groovy-datetime/build.gradle
index 4ee582bd27..77d82404c9 100644
--- a/subprojects/groovy-datetime/build.gradle
+++ b/subprojects/groovy-datetime/build.gradle
@@ -22,8 +22,8 @@ plugins {
 
 dependencies {
     api rootProject // DateTimeExtensions has methods with Closure params...
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-dateutil')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyDateutil
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-dateutil/build.gradle b/subprojects/groovy-dateutil/build.gradle
index 164ee00541..d7e17ee1c2 100644
--- a/subprojects/groovy-dateutil/build.gradle
+++ b/subprojects/groovy-dateutil/build.gradle
@@ -22,7 +22,7 @@ plugins {
 
 dependencies {
     api rootProject  // DateUtilExtensions has methods with Closure params...
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-docgenerator/build.gradle b/subprojects/groovy-docgenerator/build.gradle
index a41eac89da..0f6f6c912f 100644
--- a/subprojects/groovy-docgenerator/build.gradle
+++ b/subprojects/groovy-docgenerator/build.gradle
@@ -22,10 +22,10 @@ plugins {
 
 dependencies {
     implementation rootProject
-    implementation project(':groovy-templates')
+    implementation projects.groovyTemplates
     implementation "com.thoughtworks.qdox:qdox:${versions.qdox}"
 
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 plugins.withId('eclipse') {
diff --git a/subprojects/groovy-ginq/build.gradle b/subprojects/groovy-ginq/build.gradle
index c009144011..6ee05ca695 100644
--- a/subprojects/groovy-ginq/build.gradle
+++ b/subprojects/groovy-ginq/build.gradle
@@ -22,10 +22,10 @@ plugins {
 
 dependencies {
     api rootProject
-    api project(':groovy-macro')
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-json')
-    testImplementation project(':groovy-console')
+    api projects.groovyMacro
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyJson
+    testImplementation projects.groovyConsole
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-groovydoc/build.gradle b/subprojects/groovy-groovydoc/build.gradle
index 8d3b7d075f..94cccb55e5 100644
--- a/subprojects/groovy-groovydoc/build.gradle
+++ b/subprojects/groovy-groovydoc/build.gradle
@@ -24,11 +24,11 @@ dependencies {
     api rootProject // GroovydocVisitor extends ClassCodeVisitorSupport...
     api "com.github.javaparser:javaparser-core:${versions.javaParser}" // GroovydocJavaVisitor extends VoidVisitorAdapter...
 
-    implementation project(':groovy-templates')
-    implementation project(':groovy-docgenerator')
+    implementation projects.groovyTemplates
+    implementation projects.groovyDocgenerator
 
-    testImplementation project(':groovy-ant')
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyAnt
+    testImplementation projects.groovyTest
     testImplementation "org.apache.ant:ant-testutil:${versions.ant}"
 }
 
diff --git a/subprojects/groovy-groovysh/build.gradle b/subprojects/groovy-groovysh/build.gradle
index 10493ea80e..380f5fe1a5 100644
--- a/subprojects/groovy-groovysh/build.gradle
+++ b/subprojects/groovy-groovysh/build.gradle
@@ -22,10 +22,10 @@ plugins {
 
 dependencies {
     implementation rootProject
-    implementation project(':groovy-console')
-    implementation project(':groovy-templates')
-    implementation project(':groovy-xml')
-    testImplementation project(':groovy-test')
+    implementation projects.groovyConsole
+    implementation projects.groovyTemplates
+    implementation projects.groovyXml
+    testImplementation projects.groovyTest
     implementation("jline:jline:${versions.jline}") {
         exclude(group: 'junit', module: 'junit')
     }
diff --git a/subprojects/groovy-jmx/build.gradle b/subprojects/groovy-jmx/build.gradle
index 92743ab139..5ee777db95 100644
--- a/subprojects/groovy-jmx/build.gradle
+++ b/subprojects/groovy-jmx/build.gradle
@@ -22,9 +22,9 @@ plugins {
 
 dependencies {
     api rootProject // JmxBuilder extends FactoryBuilderSupport...
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
     testRuntimeOnly("org.apache.ivy:ivy:${versions.ivy}") {
         transitive = false
     }
-    testRuntimeOnly project(":groovy-swing")
+    testRuntimeOnly projects.groovySwing
 }
\ No newline at end of file
diff --git a/subprojects/groovy-json/build.gradle b/subprojects/groovy-json/build.gradle
index 917c11731b..de02faf881 100644
--- a/subprojects/groovy-json/build.gradle
+++ b/subprojects/groovy-json/build.gradle
@@ -23,8 +23,8 @@ plugins {
 dependencies {
     api rootProject // JsonBuilder extends GroovyObjectSupport...
 
-    testImplementation project(':groovy-test')
-    testImplementation project(':groovy-dateutil')
+    testImplementation projects.groovyTest
+    testImplementation projects.groovyDateutil
     testImplementation 'net.javacrumbs.json-unit:json-unit:2.35.0'
 
     testRuntimeOnly project(':'), {
@@ -33,7 +33,7 @@ dependencies {
             requireCapability 'org.apache.groovy:groovy-grapes'
         }
     }
-    testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+    testRuntimeOnly projects.groovyAnt // for JavadocAssertionTests
     testRuntimeOnly 'com.google.code.gson:gson:2.9.0' // json-unit requires gson, jackson1 or jackson2
 }
 
diff --git a/subprojects/groovy-jsr223/build.gradle b/subprojects/groovy-jsr223/build.gradle
index fc8dc82d56..6cae0bd9d1 100644
--- a/subprojects/groovy-jsr223/build.gradle
+++ b/subprojects/groovy-jsr223/build.gradle
@@ -22,7 +22,7 @@ plugins {
 
 dependencies {
     api rootProject // ScriptExtensions use Binding...
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-macro-library/build.gradle b/subprojects/groovy-macro-library/build.gradle
index 23c2d8729f..f334e87fc9 100644
--- a/subprojects/groovy-macro-library/build.gradle
+++ b/subprojects/groovy-macro-library/build.gradle
@@ -22,8 +22,8 @@ plugins {
 
 dependencies {
     implementation rootProject
-    implementation project(':groovy-macro')
-    testImplementation project(':groovy-test')
+    implementation projects.groovyMacro
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-macro/build.gradle b/subprojects/groovy-macro/build.gradle
index 0d7d15e09f..6793e2195a 100644
--- a/subprojects/groovy-macro/build.gradle
+++ b/subprojects/groovy-macro/build.gradle
@@ -22,7 +22,7 @@ plugins {
 
 dependencies {
     api rootProject // ASTMatcher use ASTNode...
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-nio/build.gradle b/subprojects/groovy-nio/build.gradle
index a84e338d7f..0ed023e105 100644
--- a/subprojects/groovy-nio/build.gradle
+++ b/subprojects/groovy-nio/build.gradle
@@ -23,7 +23,7 @@ plugins {
 dependencies {
     api rootProject // NioExtensions uses Closure
 
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
     testImplementation("org.spockframework:spock-junit4:${versions.spock}") {
         exclude group: 'org.codehaus.groovy'
     }
diff --git a/subprojects/groovy-servlet/build.gradle b/subprojects/groovy-servlet/build.gradle
index 30576dab74..8443d8930d 100644
--- a/subprojects/groovy-servlet/build.gradle
+++ b/subprojects/groovy-servlet/build.gradle
@@ -27,14 +27,14 @@ dependencies {
     }
 
     api rootProject  // ServletBinding extends Binding...
-    implementation project(':groovy-xml') // needed for MarkupBuilder
-    implementation project(':groovy-templates') // needed by TemplateServlet
+    implementation projects.groovyXml // needed for MarkupBuilder
+    implementation projects.groovyTemplates // needed by TemplateServlet
 
     testImplementation("javax.servlet:javax.servlet-api:${versions.javaxServletApi}")
     testImplementation("javax.servlet.jsp:javax.servlet.jsp-api:${versions.javaxJspApi}") {
         transitive = false
     }
     testImplementation "jmock:jmock:${versions.jmock}"
-    testImplementation project(':groovy-json')
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyJson
+    testImplementation projects.groovyTest
 }
diff --git a/subprojects/groovy-sql/build.gradle b/subprojects/groovy-sql/build.gradle
index 100766974f..1bd3e90e47 100644
--- a/subprojects/groovy-sql/build.gradle
+++ b/subprojects/groovy-sql/build.gradle
@@ -26,14 +26,14 @@ dependencies {
 // uncomment to test with other databases (requires changes elsewhere too)
 //    testImplementation 'com.h2database:h2:1.3.164'
 //    testImplementation 'hsqldb:hsqldb:1.8.0.10'
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
     testRuntimeOnly(project(':')) {
         because "Tests are using Grapes"
         capabilities {
             requireCapability("org.apache.groovy:groovy-grapes")
         }
     }
-    testCompileOnly(project(":groovy-macro")) {
+    testCompileOnly(projects.groovyMacro) {
         because "tests are using macro methods"
     }
 }
diff --git a/subprojects/groovy-swing/build.gradle b/subprojects/groovy-swing/build.gradle
index 84da59b668..58c9aa4b7a 100644
--- a/subprojects/groovy-swing/build.gradle
+++ b/subprojects/groovy-swing/build.gradle
@@ -23,9 +23,9 @@ plugins {
 
 dependencies {
     api rootProject  // SwingBuilder extends FactoryBuilderSupport...
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
     testImplementation testFixtures(project(':'))
-    testFixturesImplementation project(':groovy-test')
+    testFixturesImplementation projects.groovyTest
     testFixturesImplementation testFixtures(project(':'))
 }
 
diff --git a/subprojects/groovy-templates/build.gradle b/subprojects/groovy-templates/build.gradle
index 5605d61a36..0b7ec93e70 100644
--- a/subprojects/groovy-templates/build.gradle
+++ b/subprojects/groovy-templates/build.gradle
@@ -22,8 +22,8 @@ plugins {
 
 dependencies {
     api rootProject // Template uses Writable...
-    implementation project(':groovy-xml')
-    testImplementation project(':groovy-test')
+    implementation projects.groovyXml
+    testImplementation projects.groovyTest
     testImplementation ("org.spockframework:spock-core:${versions.spock}") {
         exclude group: 'org.codehaus.groovy'
     }
diff --git a/subprojects/groovy-test-junit5/build.gradle b/subprojects/groovy-test-junit5/build.gradle
index 1afdaff171..dd41e65b11 100644
--- a/subprojects/groovy-test-junit5/build.gradle
+++ b/subprojects/groovy-test-junit5/build.gradle
@@ -36,7 +36,7 @@ dependencies {
     testImplementation 'net.jqwik:jqwik:1.6.5'
     testRuntimeOnly "org.junit.platform:junit-platform-engine:${versions.junit5Platform}"
     testRuntimeOnly "org.junit.platform:junit-platform-runner:${versions.junit5Platform}"
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 tasks.named('test') {
diff --git a/subprojects/groovy-test/build.gradle b/subprojects/groovy-test/build.gradle
index 2849c0822c..655944cb0b 100644
--- a/subprojects/groovy-test/build.gradle
+++ b/subprojects/groovy-test/build.gradle
@@ -24,7 +24,7 @@ dependencies {
     api rootProject   // GroovyTestCase uses Closure...
     api "junit:junit:${versions.junit}" // GroovyTestCase extends TestCase...
     // groovy-ant needed for FileNameFinder used in AllTestSuite and JavadocAssertionTestSuite
-    testRuntimeOnly(project(':groovy-ant')) {
+    testRuntimeOnly(projects.groovyAnt) {
         transitive = false // bring in just what we need below
     }
     testRuntimeOnly "org.apache.ant:ant:${versions.ant}"
diff --git a/subprojects/groovy-testng/build.gradle b/subprojects/groovy-testng/build.gradle
index c06e97148e..61e09eacf3 100644
--- a/subprojects/groovy-testng/build.gradle
+++ b/subprojects/groovy-testng/build.gradle
@@ -29,7 +29,7 @@ dependencies {
         exclude(group: 'org.apache.ant', module: 'ant')
         exclude(group: 'org.yaml', module: 'snakeyaml')
     }
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-toml/build.gradle b/subprojects/groovy-toml/build.gradle
index 8b5b626e96..6211143335 100644
--- a/subprojects/groovy-toml/build.gradle
+++ b/subprojects/groovy-toml/build.gradle
@@ -23,9 +23,9 @@ plugins {
 dependencies {
     api rootProject  // TomlBuilder extends GroovyObjectSupport...
     implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-toml:${versions.jackson}"
-    implementation project(':groovy-json')
-    testImplementation project(':groovy-test')
-    testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+    implementation projects.groovyJson
+    testImplementation projects.groovyTest
+    testRuntimeOnly projects.groovyAnt // for JavadocAssertionTests
 }
 
 plugins.withId('eclipse') {
diff --git a/subprojects/groovy-typecheckers/build.gradle b/subprojects/groovy-typecheckers/build.gradle
index 7e68d652d0..6564937772 100644
--- a/subprojects/groovy-typecheckers/build.gradle
+++ b/subprojects/groovy-typecheckers/build.gradle
@@ -22,7 +22,7 @@ plugins {
 
 dependencies {
     implementation rootProject
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 groovyLibrary {
diff --git a/subprojects/groovy-xml/build.gradle b/subprojects/groovy-xml/build.gradle
index 42268c0102..a4dc0fb93e 100644
--- a/subprojects/groovy-xml/build.gradle
+++ b/subprojects/groovy-xml/build.gradle
@@ -23,13 +23,13 @@ plugins {
 dependencies {
     api rootProject // MarkupBuilder extends BuilderSupport...
 
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
     testImplementation "xmlunit:xmlunit:${versions.xmlunit}"
     testImplementation("org.spockframework:spock-core:${versions.spock}") {
         exclude group: 'org.codehaus.groovy'
     }
 
-    testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+    testRuntimeOnly projects.groovyAnt // for JavadocAssertionTests
     testRuntimeOnly("org.apache.ivy:ivy:${versions.ivy}") {
         transitive = false
         because 'JavadocAssertionTests use @Grab'
diff --git a/subprojects/groovy-yaml/build.gradle b/subprojects/groovy-yaml/build.gradle
index 9d2739d269..2e18115e20 100644
--- a/subprojects/groovy-yaml/build.gradle
+++ b/subprojects/groovy-yaml/build.gradle
@@ -24,10 +24,10 @@ dependencies {
     api rootProject  // YamlBuilder extends GroovyObjectSupport...
     implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${versions.jackson}"
     implementation "com.fasterxml.jackson.core:jackson-databind:${versions.jacksonDatabind}"
-    implementation project(':groovy-json')
-    testImplementation project(':groovy-test')
+    implementation projects.groovyJson
+    testImplementation projects.groovyTest
     testRuntimeOnly "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
-    testRuntimeOnly project(':groovy-ant') // for JavadocAssertionTests
+    testRuntimeOnly projects.groovyAnt // for JavadocAssertionTests
 }
 
 plugins.withId('eclipse') {
diff --git a/subprojects/stress/build.gradle b/subprojects/stress/build.gradle
index fd0246acfb..55ff802d79 100644
--- a/subprojects/stress/build.gradle
+++ b/subprojects/stress/build.gradle
@@ -21,7 +21,7 @@ plugins {
 }
 
 dependencies {
-    stressTestImplementation project(':groovy-test')
+    stressTestImplementation projects.groovyTest
 }
 
 sonarqube {
diff --git a/subprojects/tests-preview/build.gradle b/subprojects/tests-preview/build.gradle
index 3426bf9259..3895e10878 100644
--- a/subprojects/tests-preview/build.gradle
+++ b/subprojects/tests-preview/build.gradle
@@ -24,7 +24,7 @@ plugins {
 
 dependencies {
     implementation rootProject
-    testImplementation project(':groovy-test')
+    testImplementation projects.groovyTest
 }
 
 tasks.withType(Test).configureEach {