diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index 5d81cfe42c2d1e62cfee194f2b3c374a82f75b21..81a08eab90ce0824a8ea3769b46154c4dad0629b 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -456,16 +456,6 @@ If you need to _override_ constraints that Renovate detects from the repository,
 !!! note
     Make sure not to mix this up with the term `compatibility`, which Renovate uses in the context of version releases, e.g. if a Docker image is `node:12.16.0-alpine` then the `-alpine` suffix represents `compatibility`.
 
-## deepExtract
-
-<!-- prettier-ignore -->
-!!! warning
-    The `deepExtract` configuration option is deprecated, and will be removed in a future Renovate release.
-
-If configured to `true`, then dependency extraction will be done using the relevant package manager instead of JavaScript-based parsing.
-
-This option applies only to the `gradle` manager.
-
 ## defaultRegistryUrls
 
 Override a datasource's default registries with this config option.
diff --git a/docs/usage/java.md b/docs/usage/java.md
index 8519614716f01999ad2e945423ee10e84930a4f2..ccdad420fd0798a6854786a1e6d7bb942ba94591 100644
--- a/docs/usage/java.md
+++ b/docs/usage/java.md
@@ -87,12 +87,6 @@ Any repository URLs found within will be added as `registryUrls` to extracted de
 
 ## Custom registry support, and authentication
 
-Unless using `deepExtract`, Renovate does not make use of authentication credentials available to Gradle.
-
-<!-- prettier-ignore -->
-!!! warning
-    The `deepExtract` configuration option is deprecated, and will be removed in a future Renovate release.
-
 The manager for Gradle makes use of the `maven` datasource.
 Renovate can be configured to access additional repositories and access repositories authenticated.
 
diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts
index 7a9d69145a8443f4fa9d5db07bddd4b9c41031fa..c03227160d143b0aecff1940c37a79676d0635f6 100644
--- a/lib/config/migration.spec.ts
+++ b/lib/config/migration.spec.ts
@@ -44,6 +44,7 @@ describe('config/migration', () => {
         onboarding: 'false' as never,
         multipleMajorPrs: true,
         gitFs: false,
+        deepExtract: true,
         ignoreNpmrcFile: true,
         separateMajorReleases: true,
         separatePatchReleases: true,
diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts
index 40a4e20c3af22dbb9cc6ccab117fa8c6abb9f84a..08c37db75c1b0267bf58368e85a8eea2a3bfda39 100644
--- a/lib/config/migrations/migrations-service.ts
+++ b/lib/config/migrations/migrations-service.ts
@@ -23,6 +23,7 @@ import type { Migration, MigrationConstructor } from './types';
 
 export class MigrationsService {
   static readonly removedProperties: ReadonlySet<string> = new Set([
+    'deepExtract',
     'gitFs',
     'groupBranchName',
     'groupCommitMessage',
diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts
index 51fddda4d5b22daa5324bdfba9c59caf57f5debe..20d2633428a2c37380a81a0958d51aa57533ba71 100644
--- a/lib/config/options/index.ts
+++ b/lib/config/options/index.ts
@@ -208,15 +208,6 @@ const options: RenovateOptions[] = [
     cli: false,
     env: false,
   },
-  {
-    name: 'deepExtract',
-    description: `Enable extraction of dependencies using package managers.`,
-    type: 'boolean',
-    default: false,
-    cli: false,
-    env: false,
-    supportedManagers: ['gradle'],
-  },
   {
     name: 'repositoryCache',
     description: 'Option to do repository extract caching.',
diff --git a/lib/modules/manager/gradle-wrapper/artifacts-real.spec.ts b/lib/modules/manager/gradle-wrapper/artifacts-real.spec.ts
index ddb4e1d468de85fee6a1105dd12fc31e84e02f6f..34d460f87062fca277eb71a16d0eb4dc97bb831f 100644
--- a/lib/modules/manager/gradle-wrapper/artifacts-real.spec.ts
+++ b/lib/modules/manager/gradle-wrapper/artifacts-real.spec.ts
@@ -6,7 +6,7 @@ import { git, partial } from '../../../../test/util';
 import { GlobalConfig } from '../../../config/global';
 import type { RepoGlobalConfig } from '../../../config/types';
 import type { StatusResult } from '../../../util/git/types';
-import { ifSystemSupportsGradle } from '../gradle/deep/__testutil__/gradle';
+import { ifSystemSupportsGradle } from '../gradle/__testutil__/gradle';
 import type { UpdateArtifactsConfig } from '../types';
 import * as gradleWrapper from '.';
 
diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts
index a87cebc63557a025c41e489f1536209707595055..3c8e42ae974f7465189f0b7619ad7346ebe24943 100644
--- a/lib/modules/manager/gradle-wrapper/utils.ts
+++ b/lib/modules/manager/gradle-wrapper/utils.ts
@@ -14,6 +14,7 @@ export const extraEnv = {
     '-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false',
 };
 
+// istanbul ignore next
 export function gradleWrapperFileName(): string {
   if (
     os.platform() === 'win32' &&
diff --git a/lib/modules/manager/gradle/shallow/__fixtures__/1/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml
similarity index 100%
rename from lib/modules/manager/gradle/shallow/__fixtures__/1/libs.versions.toml
rename to lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml
diff --git a/lib/modules/manager/gradle/shallow/__fixtures__/2/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/2/libs.versions.toml
similarity index 100%
rename from lib/modules/manager/gradle/shallow/__fixtures__/2/libs.versions.toml
rename to lib/modules/manager/gradle/__fixtures__/2/libs.versions.toml
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/build.gradle.example1 b/lib/modules/manager/gradle/__fixtures__/build.gradle.example1
similarity index 100%
rename from lib/modules/manager/gradle/deep/__fixtures__/build.gradle.example1
rename to lib/modules/manager/gradle/__fixtures__/build.gradle.example1
diff --git a/lib/modules/manager/gradle/shallow/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap
similarity index 87%
rename from lib/modules/manager/gradle/shallow/__snapshots__/extract.spec.ts.snap
rename to lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap
index 2cc2c28a0b916028cbb5ad85ea992d6965f77f98..36342d7b6a10b2524b2d1f6eed6b8856681869b1 100644
--- a/lib/modules/manager/gradle/shallow/__snapshots__/extract.spec.ts.snap
+++ b/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`modules/manager/gradle/shallow/extract extracts from cross-referenced files 1`] = `
+exports[`modules/manager/gradle/extract extracts from cross-referenced files 1`] = `
 Array [
   Object {
     "datasource": "maven",
diff --git a/lib/modules/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap b/lib/modules/manager/gradle/__snapshots__/parser.spec.ts.snap
similarity index 96%
rename from lib/modules/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap
rename to lib/modules/manager/gradle/__snapshots__/parser.spec.ts.snap
index e9d3cf53893a7d398e59c62b7dd99e8772a9c1bf..859b4fba3ec2c2e4c9d08e60b9ac7f8a21ee8fd7 100644
--- a/lib/modules/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap
+++ b/lib/modules/manager/gradle/__snapshots__/parser.spec.ts.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`modules/manager/gradle/shallow/parser calculations parses fixture from "gradle" manager 1`] = `
+exports[`modules/manager/gradle/parser calculations parses fixture from "gradle" manager 1`] = `
 Array [
   Object {
     "currentValue": "1.5.2.RELEASE",
diff --git a/lib/modules/manager/gradle/deep/__testutil__/gradle.ts b/lib/modules/manager/gradle/__testutil__/gradle.ts
similarity index 98%
rename from lib/modules/manager/gradle/deep/__testutil__/gradle.ts
rename to lib/modules/manager/gradle/__testutil__/gradle.ts
index 41568651fb2635765a1180aee95d6e57db2a6237..66b9b3e17569ca225f96d64cdcdcdaf6d3e709f3 100644
--- a/lib/modules/manager/gradle/deep/__testutil__/gradle.ts
+++ b/lib/modules/manager/gradle/__testutil__/gradle.ts
@@ -39,7 +39,7 @@ function determineJavaVersion(): number {
     } catch (e) {
       error = e;
     }
-    if (javaVersionCommand.error) {
+    if (javaVersionCommand?.error) {
       error = javaVersionCommand.error;
     }
     if (error) {
diff --git a/lib/modules/manager/gradle/shallow/common.ts b/lib/modules/manager/gradle/common.ts
similarity index 95%
rename from lib/modules/manager/gradle/shallow/common.ts
rename to lib/modules/manager/gradle/common.ts
index 6991dcfd281953c0d919f6deca45b20e5e0a562d..054cd5f63e9578923db0960310088c613c9a4d3a 100644
--- a/lib/modules/manager/gradle/shallow/common.ts
+++ b/lib/modules/manager/gradle/common.ts
@@ -1,4 +1,4 @@
-export { MAVEN_REPO } from '../../../datasource/maven/common';
+export { MAVEN_REPO } from '../../datasource/maven/common';
 
 export const JCENTER_REPO = 'https://jcenter.bintray.com/';
 export const GOOGLE_REPO = 'https://dl.google.com/android/maven2/';
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/MultiProjectUpdatesReport.json b/lib/modules/manager/gradle/deep/__fixtures__/MultiProjectUpdatesReport.json
deleted file mode 100644
index cd74529111cd44f2f3673976bb4a0b1e9b4f0da5..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/MultiProjectUpdatesReport.json
+++ /dev/null
@@ -1,37 +0,0 @@
-[
-  {
-    "project": "project1",
-    "repositories": ["https://repo.maven.apache.org/maven2/"],
-    "dependencies": [
-      {
-        "name": "spring-boot-starter-jersey",
-        "group": "org.springframework.boot",
-        "version": null
-      },
-      {
-        "name": "cglib-nodep",
-        "group": "cglib",
-        "version": "3.1"
-      }
-    ]
-  },
-  {
-    "project": "project2",
-    "repositories": [
-      "https://repo.maven.apache.org/maven2/",
-      "https://jitpack.io"
-    ],
-    "dependencies": [
-      {
-        "name": "spring-boot-starter-jersey",
-        "group": "org.springframework.boot",
-        "version": null
-      },
-      {
-        "name": "spock-core",
-        "group": "org.spockframework",
-        "version": "1.0-groovy-2.4"
-      }
-    ]
-  }
-]
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.jar b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index f3d88b1c2faf2fc91d853cd5d4242b5547257070..0000000000000000000000000000000000000000
Binary files a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.properties b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 75b8c7c8c67a003599a36935d1c6a41519fc2207..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew
deleted file mode 100755
index 2fe81a7d95e4f9ad2c9b2a046707d36ceb3980b3..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed 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.
-#
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
-    echo "$*"
-}
-
-die () {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=`expr $i + 1`
-    done
-    case $i in
-        0) set -- ;;
-        1) set -- "$args0" ;;
-        2) set -- "$args0" "$args1" ;;
-        3) set -- "$args0" "$args1" "$args2" ;;
-        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Escape application args
-save () {
-    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
-    echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew.bat b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew.bat
deleted file mode 100644
index 9618d8d9607cd91a0efb866bcac4810064ba6fac..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/5/gradlew.bat
+++ /dev/null
@@ -1,100 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.jar b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index f3d88b1c2faf2fc91d853cd5d4242b5547257070..0000000000000000000000000000000000000000
Binary files a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.properties b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 6ce793f21e85406ef67d65597882475c4baf6f05..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew
deleted file mode 100755
index 2fe81a7d95e4f9ad2c9b2a046707d36ceb3980b3..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed 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.
-#
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
-    echo "$*"
-}
-
-die () {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=`expr $i + 1`
-    done
-    case $i in
-        0) set -- ;;
-        1) set -- "$args0" ;;
-        2) set -- "$args0" "$args1" ;;
-        3) set -- "$args0" "$args1" "$args2" ;;
-        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Escape application args
-save () {
-    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
-    echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew.bat b/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew.bat
deleted file mode 100644
index 9618d8d9607cd91a0efb866bcac4810064ba6fac..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/gradle-wrappers/6/gradlew.bat
+++ /dev/null
@@ -1,100 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/build.gradle b/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/build.gradle
deleted file mode 100644
index 0014edfd551f4d87030aeb0a68bc70d54b3d3943..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/build.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
-plugins {
-  id 'java'
-}
-
-repositories {
-  jcenter()
-}
-
-dependencies {
-  implementation 'org.apache.commons:commons-collections4:4.4'
-}
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/settings.gradle b/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/settings.gradle
deleted file mode 100644
index 04859231ff40e378ffa47417a567e66bdc989164..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/minimal-project/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = 'minimal-test'
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/updatesReport.json b/lib/modules/manager/gradle/deep/__fixtures__/updatesReport.json
deleted file mode 100644
index e509965ec50d1dbec180bfc4853621b01a259487..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/updatesReport.json
+++ /dev/null
@@ -1,51 +0,0 @@
-[
-  {
-    "project": "telegram-images",
-    "repositories": [
-      "https://repo.maven.apache.org/maven2/",
-      "https://jitpack.io"
-    ],
-    "dependencies": [
-      {
-        "name": "spring-boot-starter-jersey",
-        "group": "org.springframework.boot",
-        "version": null
-      },
-      {
-        "name": "spock-core",
-        "group": "org.spockframework",
-        "version": "1.0-groovy-2.4"
-      },
-      {
-        "name": "cglib-nodep",
-        "group": "cglib",
-        "version": "3.1"
-      },
-      {
-        "name": "scala-library",
-        "group": "org.scala-lang",
-        "version": "%scala-version%"
-      },
-      {
-        "name": "scala-logging_%%",
-        "group": "com.typesafe.scala-logging",
-        "version": "3.9.0"
-      },
-      {
-        "name": "foo",
-        "group": "foo",
-        "version": null
-      },
-      {
-        "name": "bar",
-        "group": "bar",
-        "version": null
-      },
-      {
-        "name": "baz",
-        "group": "baz",
-        "version": null
-      }
-    ]
-  }
-]
diff --git a/lib/modules/manager/gradle/deep/__fixtures__/updatesReportEmpty.json b/lib/modules/manager/gradle/deep/__fixtures__/updatesReportEmpty.json
deleted file mode 100644
index 7a6996ca94790c8315c6399c7487f62231337be1..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__fixtures__/updatesReportEmpty.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
-  {
-    "project": "telegram-images",
-    "repositories": [
-      "https://repo.maven.apache.org/maven2/",
-      "https://jitpack.io"
-    ]
-  }
-]
diff --git a/lib/modules/manager/gradle/deep/__snapshots__/index.spec.ts.snap b/lib/modules/manager/gradle/deep/__snapshots__/index.spec.ts.snap
deleted file mode 100644
index b770de8095b3df1c64efd3df313bf05c1bb91c72..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/__snapshots__/index.spec.ts.snap
+++ /dev/null
@@ -1,1244 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradle if gradlew is not available 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradle if gradlew is not available 2`] = `
-Array [
-  Object {
-    "cmd": "gradle --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradlew when available 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradlew when available 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradlew.bat when available on Windows 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should execute gradlew.bat when available on Windows 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return empty if renovate report is invalid 1`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return empty if there are no dependencies 1`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return empty if there is no dependency report 1`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return gradle dependencies for build.gradle in subdirectories if there is gradlew in the same directory 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "baz/qux/build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return gradle dependencies for build.gradle in subdirectories if there is gradlew in the same directory 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar/baz/qux",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return gradle.kts dependencies 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle.kts",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should return gradle.kts dependencies 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should update an existing module dependency 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should update an existing module dependency 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker even if gradlew is available 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker even if gradlew is available 2`] = `
-Array [
-  Object {
-    "cmd": "docker pull renovate/java:11.0.12",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker ps --filter name=renovate_java -aq",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker rm -f gradle output",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker run --rm --name=renovate_java --label=renovate_child -v \\"/foo/bar\\":\\"/foo/bar\\" -e GRADLE_OPTS -w \\"/foo/bar\\" renovate/java:11.0.12 bash -l -c \\"<gradlew> --init-script renovate-plugin.gradle renovate\\"",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker even if gradlew.bat is available on Windows 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker even if gradlew.bat is available on Windows 2`] = `
-Array [
-  Object {
-    "cmd": "docker pull renovate/java:11.0.12",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker ps --filter name=renovate_java -aq",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker rm -f gradle output",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker run --rm --name=renovate_java --label=renovate_child -v \\"/foo/bar\\":\\"/foo/bar\\" -e GRADLE_OPTS -w \\"/foo/bar\\" renovate/java:11.0.12 bash -l -c \\"<gradlew> --init-script renovate-plugin.gradle renovate\\"",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker if required 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "%scala-version%",
-        "depGroup": "org.scala-lang",
-        "depName": "org.scala-lang:scala-library",
-        "name": "scala-library",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-        "skipReason": "version-placeholder",
-      },
-      Object {
-        "currentValue": "3.9.0",
-        "datasource": "sbt-package",
-        "depGroup": "com.typesafe.scala-logging",
-        "depName": "com.typesafe.scala-logging:scala-logging",
-        "name": "scala-logging_%%",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "1.2.3",
-        "depGroup": "foo",
-        "depName": "foo:foo",
-        "name": "foo",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "This.Is.Valid.Version.Good.Luck",
-        "depGroup": "bar",
-        "depName": "bar:bar",
-        "name": "bar",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": null,
-        "depGroup": "baz",
-        "depName": "baz:baz",
-        "name": "baz",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use docker if required 2`] = `
-Array [
-  Object {
-    "cmd": "docker pull renovate/java:11.0.12",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker ps --filter name=renovate_java -aq",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker rm -f gradle output",
-    "options": Object {
-      "encoding": "utf-8",
-    },
-  },
-  Object {
-    "cmd": "docker run --rm --name=renovate_java --label=renovate_child -v \\"/foo/bar\\":\\"/foo/bar\\" -e GRADLE_OPTS -w \\"/foo/bar\\" renovate/java:11.0.12 bash -l -c \\"install-tool gradle latest && gradle --init-script renovate-plugin.gradle renovate\\"",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use repositories only for current project 1`] = `
-Array [
-  Object {
-    "datasource": "maven",
-    "deps": Array [
-      Object {
-        "currentValue": null,
-        "depGroup": "org.springframework.boot",
-        "depName": "org.springframework.boot:spring-boot-starter-jersey",
-        "name": "spring-boot-starter-jersey",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-      Object {
-        "currentValue": "3.1",
-        "depGroup": "cglib",
-        "depName": "cglib:cglib-nodep",
-        "name": "cglib-nodep",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-        ],
-      },
-      Object {
-        "currentValue": "1.0-groovy-2.4",
-        "depGroup": "org.spockframework",
-        "depName": "org.spockframework:spock-core",
-        "name": "spock-core",
-        "registryUrls": Array [
-          "https://repo.maven.apache.org/maven2/",
-          "https://jitpack.io",
-        ],
-      },
-    ],
-    "packageFile": "build.gradle",
-  },
-]
-`;
-
-exports[`modules/manager/gradle/deep/index extractPackageFile should use repositories only for current project 2`] = `
-Array [
-  Object {
-    "cmd": "<gradlew> --init-script renovate-plugin.gradle renovate",
-    "options": Object {
-      "cwd": "/foo/bar",
-      "encoding": "utf-8",
-      "env": Object {
-        "GRADLE_OPTS": "-Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=false",
-        "HOME": "/home/user",
-        "HTTPS_PROXY": "https://example.com",
-        "HTTP_PROXY": "http://example.com",
-        "LANG": "en_US.UTF-8",
-        "LC_ALL": "en_US",
-        "NO_PROXY": "localhost",
-        "PATH": "/tmp/path",
-      },
-      "maxBuffer": 10485760,
-      "timeout": 60000,
-    },
-  },
-]
-`;
diff --git a/lib/modules/manager/gradle/deep/build-gradle.spec.ts b/lib/modules/manager/gradle/deep/build-gradle.spec.ts
deleted file mode 100644
index 516bf725c623c760ce8cb34376391003d076a204..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/build-gradle.spec.ts
+++ /dev/null
@@ -1,790 +0,0 @@
-import {
-  collectVersionVariables,
-  init,
-  updateGradleVersion,
-} from './build-gradle';
-
-describe('modules/manager/gradle/deep/build-gradle', () => {
-  beforeEach(() => {
-    init();
-  });
-
-  it('returns the same file if dependency is null', () => {
-    const gradleFile = "runtime('mysql:mysql-connector-java:6.0.5')";
-    const updatedGradleFile = updateGradleVersion(gradleFile, null, null);
-    expect(updatedGradleFile).toEqual(gradleFile);
-  });
-
-  it('returns the same file if version is not found', () => {
-    const gradleFile = "runtime('mysql:mysql-connector-java:6.0.5')";
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'org.codehaus.groovy', name: 'groovy', version: '2.4.9' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toEqual(gradleFile);
-  });
-
-  it('returns a file updated if the version is found', () => {
-    const gradleFile = "runtime (  'mysql:mysql-connector-java:6.0.5'  )";
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      "runtime (  'mysql:mysql-connector-java:7.0.0'  )"
-    );
-  });
-
-  it('should returns a file updated with keeping an extension if the version is found', () => {
-    const gradleFile =
-      "runtime (  'com.crashlytics.sdk.android:crashlytics:2.8.0@aar'  )";
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      {
-        group: 'com.crashlytics.sdk.android',
-        name: 'crashlytics',
-        version: '2.8.0',
-      },
-      '2.10.1'
-    );
-    expect(updatedGradleFile).toBe(
-      "runtime (  'com.crashlytics.sdk.android:crashlytics:2.10.1@aar'  )"
-    );
-  });
-
-  it('should returns a file updated with keeping a classifier and an extension if the version is found', () => {
-    const gradleFile = "runtime (  'junit:junit:4.0:javadoc@jar'  )";
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'junit', name: 'junit', version: '4.0' },
-      '5.0'
-    );
-    expect(updatedGradleFile).toBe(
-      "runtime (  'junit:junit:5.0:javadoc@jar'  )"
-    );
-  });
-
-  it('returns an updated file if the version in single quotes defined as map is found', () => {
-    const gradleFile = `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: '6.0.5'`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: '7.0.0'`
-    );
-  });
-
-  it('returns an updated file if the version in single quotes defined as map is found in a different order', () => {
-    const gradleFile = `compile name : 'mysql-connector-java',
-               group  : 'mysql',
-               version: '6.0.5'`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile name : 'mysql-connector-java',
-               group  : 'mysql',
-               version: '7.0.0'`
-    );
-  });
-
-  it('returns an updated file if the version in double quotes defined as map is found', () => {
-    const gradleFile = `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: "6.0.5"`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: "7.0.0"`
-    );
-  });
-
-  it('returns an updated file if the version in double quotes defined as map is found in a different order', () => {
-    const gradleFile = `compile name   : 'mysql-connector-java',
-               version: "6.0.5",
-               group  : 'mysql'`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile name   : 'mysql-connector-java',
-               version: "7.0.0",
-               group  : 'mysql'`
-    );
-  });
-
-  it('returns an updated file if the version in triple single quotes defined as map is found', () => {
-    const gradleFile = `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: '''6.0.5'''`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: '''7.0.0'''`
-    );
-  });
-
-  it('returns an updated file if the version in triple single quotes defined as map is found in a different order', () => {
-    const gradleFile = `compile version: '''6.0.5''',
-               group  : 'mysql',
-               name   : 'mysql-connector-java'`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile version: '''7.0.0''',
-               group  : 'mysql',
-               name   : 'mysql-connector-java'`
-    );
-  });
-
-  it('returns an updated file if the version in triple double quotes defined as map is found', () => {
-    const gradleFile = `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: """6.0.5"""`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile group  : 'mysql'               ,
-               name   : 'mysql-connector-java',
-               version: """7.0.0"""`
-    );
-  });
-
-  it('returns an updated file if the version in triple double quotes defined as map is found in a different order', () => {
-    const gradleFile = `compile version: """6.0.5""",
-               name   : 'mysql-connector-java',
-               group  : 'mysql'`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile version: """7.0.0""",
-               name   : 'mysql-connector-java',
-               group  : 'mysql'`
-    );
-  });
-
-  it('returns a file updated if the version defined as a Kotlin named argument is found', () => {
-    const gradleFile = `compile(group   = "mysql"               ,
-               name    = "mysql-connector-java",
-               version = "6.0.5")`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile(group   = "mysql"               ,
-               name    = "mysql-connector-java",
-               version = "7.0.0")`
-    );
-  });
-
-  it('returns a file updated if the version defined as a Kotlin named argument is found in a different order', () => {
-    const gradleFile = `compile(group = "mysql",
-               version = "6.0.5",
-               name    = "mysql-connector-java")`;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `compile(group = "mysql",
-               version = "7.0.0",
-               name    = "mysql-connector-java")`
-    );
-  });
-
-  it('should returns a file updated if the version defined in a variable as a string is found', () => {
-    const gradleFile = `String mysqlVersion= "6.0.5"
-    runtime (  "mysql:mysql-connector-java:$mysqlVersion"  )
-    `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(`String mysqlVersion= "7.0.0"
-    runtime (  "mysql:mysql-connector-java:$mysqlVersion"  )
-    `);
-  });
-
-  it('should returns a file updated if the version defined in a expression as a string is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-    runtime (  "mysql:mysql-connector-java:\${mysqlVersion}"  )
-    `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(`String mysqlVersion = "7.0.0"
-    runtime (  "mysql:mysql-connector-java:\${mysqlVersion}"  )
-    `);
-  });
-
-  it('should returns a file updated if the version defined in a variable as a map is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : mysqlVersion
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : mysqlVersion
-               `
-    );
-  });
-
-  it('should returns a file updated if the version defined in a variable as a map is found in a different order', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile name   : 'mysql-connector-java',
-               group          : 'mysql'               ,
-               version        : mysqlVersion
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile name   : 'mysql-connector-java',
-               group          : 'mysql'               ,
-               version        : mysqlVersion
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a simple template string without curly braces as a map is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : "$mysqlVersion"
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : "$mysqlVersion"
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a simple template string with curly braces as a map is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : "\${mysqlVersion}"
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : "\${mysqlVersion}"
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a simple template string with curly braces as a map is found in a different order', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile name   : 'mysql-connector-java',
-               version        : "\${mysqlVersion}",
-               group          : 'mysql'
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile name   : 'mysql-connector-java',
-               version        : "\${mysqlVersion}",
-               group          : 'mysql'
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a triple template string without curly braces as a map is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : """$mysqlVersion"""
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : """$mysqlVersion"""
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a triple template string with curly braces as a map is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : """\${mysqlVersion}"""
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : """\${mysqlVersion}"""
-               `
-    );
-  });
-
-  it('should returns a file updated if the version defined in a variable as a Kotlin named argument is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = mysqlVersion)
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = mysqlVersion)
-               `
-    );
-  });
-
-  it('should returns a file updated if the version defined in a variable as a Kotlin named argument is found in a different order', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               compile(name  = "mysql-connector-java",
-               group         = "mysql"               ,
-               version       = mysqlVersion)
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               compile(name  = "mysql-connector-java",
-               group         = "mysql"               ,
-               version       = mysqlVersion)
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a template string without curly braces as a Kotlin named argument is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = "$mysqlVersion")
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = "$mysqlVersion")
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a template string with curly braces as a Kotlin named argument is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = "\${mysqlVersion}")
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               compile(group = "mysql"               ,
-               name          = "mysql-connector-java",
-               version       = "\${mysqlVersion}")
-               `
-    );
-  });
-
-  it('returns an updated file if the version defined in a variable in a template string with curly braces as a Kotlin named argument is found in a different order', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               compile(version = "\${mysqlVersion}"    ,
-               name            = "mysql-connector-java",
-               group           = "mysql")
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               compile(version = "\${mysqlVersion}"    ,
-               name            = "mysql-connector-java",
-               group           = "mysql")
-               `
-    );
-  });
-
-  it('returns an updated file if the plugin version defined in a variable is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               id("mysql") version mysqlVersion
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               id("mysql") version mysqlVersion
-               `
-    );
-  });
-
-  it('returns an updated file if the plugin version defined in a variable in a template string without curly braces is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               id("mysql") version "$mysqlVersion"
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               id("mysql") version "$mysqlVersion"
-               `
-    );
-  });
-
-  it('returns an updated file if the plugin version defined in a variable in a template string with curly braces is found', () => {
-    const gradleFile = `val mysqlVersion = "6.0.5"
-               id("mysql") version "\${mysqlVersion}"
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `val mysqlVersion = "7.0.0"
-               id("mysql") version "\${mysqlVersion}"
-               `
-    );
-  });
-
-  it('returns an updated file if the plugin version defined in a variable in a template string with triple double quotes is found', () => {
-    const gradleFile = `String mysqlVersion = "6.0.5"
-               id 'mysql' version """$mysqlVersion"""
-               `;
-    const updatedGradleFile = updateGradleVersion(
-      gradleFile,
-      { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      `String mysqlVersion = "7.0.0"
-               id 'mysql' version """$mysqlVersion"""
-               `
-    );
-  });
-
-  it('should replace a external groovy variable assigned to a specific dependency', () => {
-    const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'String mysqlVersion = "6.0.5"';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
-  });
-
-  it('should replace a external groovy map variable assigned to a specific dependency', () => {
-    const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${versions.mysqlVersion}"  )';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'ext.versions = [ mysqlVersion: "6.0.5" ]';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('ext.versions = [ mysqlVersion: "7.0.0" ]');
-  });
-
-  it('should replace a external groovy map nested variable assigned to a specific dependency', () => {
-    const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${versions.nested.mysqlVersion}"  )';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile =
-      'ext.versions = [ nested: [ mysqlVersion: "6.0.5" ] ]';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe(
-      'ext.versions = [ nested: [ mysqlVersion: "7.0.0" ] ]'
-    );
-  });
-
-  it('should replace a external property variable assigned to a specific dependency', () => {
-    const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:${mysqlVersion}"  )';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const propertyFile = 'mysqlVersion=6.0.5';
-    const updatedGradleFile = updateGradleVersion(
-      propertyFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('mysqlVersion=7.0.0');
-  });
-
-  it('should replace a external property variable assigned to a specific dependency parenthesis syntax', () => {
-    const gradleFile =
-      "implementation platform(group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion)";
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const propertyFile = 'mysqlVersion=6.0.5';
-    const updatedGradleFile = updateGradleVersion(
-      propertyFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('mysqlVersion=7.0.0');
-  });
-
-  it('should replace a external variable assigned to a map dependency', () => {
-    const gradleFile = `compile group  : 'mysql'               ,
-               name           : 'mysql-connector-java',
-               version        : mysqlVersion
-               `;
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'String mysqlVersion = "6.0.5"';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
-  });
-
-  it('should replace a external variable assigned to a Kotlin named argument dependency', () => {
-    const gradleFile = `compile(group  = "mysql"               ,
-               name           = "mysql-connector-java",
-               version        = mysqlVersion)
-               `;
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'val mysqlVersion = "6.0.5"';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('val mysqlVersion = "7.0.0"');
-  });
-
-  it('should replace a external variable assigned to a interpolated dependency', () => {
-    const gradleFile =
-      'runtime (  "mysql:mysql-connector-java:$mysqlVersion"  )';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'String mysqlVersion = "6.0.5"';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
-  });
-
-  it('should replace a external extra variable assigned to a Kotlin named argument dependency', () => {
-    const gradleFile = `compile(group  = "mysql"               ,
-               name           = "mysql-connector-java",
-               version        = mysqlVersion)
-               `;
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'val mysqlVersion by extra("6.0.5")';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('val mysqlVersion by extra("7.0.0")');
-  });
-
-  it('should replace a external lazy extra variable assigned to a Kotlin named argument dependency', () => {
-    const gradleFile = `compile(group  = "mysql"               ,
-               name           = "mysql-connector-java",
-               version        = mysqlVersion)
-               `;
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'val mysqlVersion by extra { "6.0.5" }';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('val mysqlVersion by extra { "7.0.0" }');
-  });
-
-  it('should replace a external variable assigned to a plugin dependency', () => {
-    const gradleFile = 'id("mysql") version "$mysqlVersion";';
-    const mysqlDependency = {
-      group: 'mysql',
-      depGroup: 'mysql',
-      name: 'mysql-connector-java',
-      version: '6.0.5',
-    };
-    collectVersionVariables([mysqlDependency], gradleFile);
-
-    const gradleWithVersionFile = 'String mysqlVersion = "6.0.5"';
-    const updatedGradleFile = updateGradleVersion(
-      gradleWithVersionFile,
-      mysqlDependency,
-      '7.0.0'
-    );
-    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
-  });
-});
diff --git a/lib/modules/manager/gradle/deep/build-gradle.ts b/lib/modules/manager/gradle/deep/build-gradle.ts
deleted file mode 100644
index c1cd02d243ccd397c2e084d78b9ab97533ab2fbd..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/build-gradle.ts
+++ /dev/null
@@ -1,402 +0,0 @@
-import { regEx } from '../../../../util/regex';
-import type {
-  BuildDependency,
-  GradleDependency,
-  UpdateFunction,
-} from './types';
-
-/**
- * Functions adapted/ported from https://github.com/patrikerdes/gradle-use-latest-versions-plugin
- * gradle-use-latest-versions-plugin is licensed under MIT and Copyright (c) 2018 Patrik Erdes
- */
-
-let variables: Record<string, string> = {};
-
-const groovyQuotes = `(?:["'](?:""|'')?)`;
-const groovyVersionVariable = `(?:${groovyQuotes}\\$)?{?([^\\s"'{}$)]+)}?${groovyQuotes}?`;
-const kotlinVersionVariable = `(?:"\\$)?{?([^\\s"{}$]+?)}?"?`;
-
-// https://github.com/patrikerdes/gradle-use-latest-versions-plugin/blob/8cf9c3917b8b04ba41038923cab270d2adda3aa6/src/main/groovy/se/patrikerdes/DependencyUpdate.groovy#L27-L29
-function moduleStringVersionFormatMatch(dependency: GradleDependency): RegExp {
-  return regEx(
-    `(${groovyQuotes}${dependency.group}:${dependency.name}:)[^$].*?(([:@].*?)?${groovyQuotes})`
-  );
-}
-
-function groovyPluginStringVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `(id\\s+${groovyQuotes}${dependency.group}${groovyQuotes}\\s+version\\s+${groovyQuotes})[^"$].*?(${groovyQuotes})`
-  );
-}
-
-function kotlinPluginStringVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `(id\\("${dependency.group}"\\)\\s+version\\s+")[^$].*?(")`,
-    undefined,
-    false
-  );
-}
-
-function dependencyStringVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `(dependency\\s+['"]${dependency.group}:${dependency.name}:)[^'"]+(['"])`,
-    undefined,
-    false
-  );
-}
-
-function allMapFormatOrders(
-  group: string,
-  name: string,
-  version: string,
-  prefix: string,
-  postfix: string
-): RegExp[] {
-  const comma = '\\s*,\\s*';
-  return [
-    `${group}${comma}${name}${comma}${version}`,
-    `${group}${comma}${version}${comma}${name}`,
-    `${name}${comma}${group}${comma}${version}`,
-    `${version}${comma}${group}${comma}${name}`,
-    `${name}${comma}${version}${comma}${group}`,
-    `${version}${comma}${name}${comma}${group}`,
-  ].map((regex) => regEx(`${prefix}${regex}${postfix}`, undefined, false));
-}
-
-function moduleMapVersionFormatMatch(dependency: GradleDependency): RegExp[] {
-  // two captures groups: start and end. The version is in between them
-  const group = `group\\s*:\\s*${groovyQuotes}${dependency.group}${groovyQuotes}`;
-  const name = `name\\s*:\\s*${groovyQuotes}${dependency.name}${groovyQuotes}`;
-  const version = `version\\s*:\\s*${groovyQuotes})[^{}$"']+?(${groovyQuotes}`;
-  return allMapFormatOrders(group, name, version, '(', ')');
-}
-
-function moduleKotlinNamedArgumentVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp[] {
-  // two captures groups: start and end. The version is in between them
-  const group = `group\\s*=\\s*"${dependency.group}"`;
-  const name = `name\\s*=\\s*"${dependency.name}"`;
-  const version = `version\\s*=\\s*")[^{}$]*?("`;
-  return allMapFormatOrders(group, name, version, '(', ')');
-}
-
-function moduleMapVariableVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp[] {
-  // one capture group: the version variable
-  const group = `group\\s*:\\s*${groovyQuotes}${dependency.group}${groovyQuotes}`;
-  const name = `name\\s*:\\s*${groovyQuotes}${dependency.name}${groovyQuotes}`;
-  const version = `version\\s*:\\s*${groovyVersionVariable}`;
-  return allMapFormatOrders(group, name, version, '', '');
-}
-
-function moduleKotlinNamedArgumentVariableVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp[] {
-  // one capture group: the version variable
-  const group = `group\\s*=\\s*"${dependency.group}"`;
-  const name = `name\\s*=\\s*"${dependency.name}"`;
-  const version = `version\\s*=\\s*${kotlinVersionVariable}`;
-  return allMapFormatOrders(group, name, version, '', '[\\s),]');
-}
-
-function moduleStringVariableInterpolationVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `${groovyQuotes}${dependency.group}:${dependency.name}:\\$([^{].*?)${groovyQuotes}`
-  );
-}
-
-function moduleStringVariableExpressionVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `${groovyQuotes}${dependency.group}:${dependency.name}:\\$` +
-      `{([^{].*?)}${groovyQuotes}`
-  );
-}
-
-function groovyPluginVariableVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `id\\s+${groovyQuotes}${dependency.group}${groovyQuotes}\\s+version\\s+${groovyVersionVariable}(?:\\s|;|})`
-  );
-}
-
-function kotlinPluginVariableVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `id\\("${dependency.group}"\\)\\s+version\\s+${kotlinVersionVariable}(?:\\s|;|})`
-  );
-}
-
-function kotlinImplementationVariableVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  // implementation("com.graphql-java", "graphql-java", graphqlVersion)
-  return regEx(
-    `(?:implementation|testImplementation)\\s*\\(\\s*['"]${dependency.group}['"]\\s*,\\s*['"]${dependency.name}['"]\\s*,\\s*([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\)\\s*(?:\\s|;|})`
-  );
-}
-
-function kotlinPluginVariableDotVersionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  // id("org.jetbrains.kotlin.jvm").version(kotlinVersion)
-  return regEx(
-    `id\\s*\\(\\s*"${dependency.group}"\\s*\\)\\s*\\.\\s*version\\s*\\(\\s*([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\)\\s*(?:\\s|;|})`
-  );
-}
-
-function dependencyStringVariableExpressionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `\\s*dependency\\s+['"]${dependency.group}:${dependency.name}:` +
-      '${([^}]*)}' + // eslint-disable-line no-template-curly-in-string
-      `['"](?:\\s|;|})`
-  );
-}
-
-function dependencyStringLiteralExpressionFormatMatch(
-  dependency: GradleDependency
-): RegExp {
-  return regEx(
-    `\\s*dependency\\s+['"]${dependency.group}:${dependency.name}:([^'"{}$]+)['"](?:\\s|;|})`
-  );
-}
-
-function variableDefinitionFormatMatch(variable: string): RegExp {
-  return regEx(`(${variable}\\s*=\\s*?["'])(.*)(["'])`);
-}
-
-function variableMapDefinitionFormatMatch(
-  variable: string,
-  version: string
-): RegExp {
-  return regEx(
-    `(${variable}\\s*:\\s*?["'])(${version})(["'])`,
-    undefined,
-    false
-  );
-}
-
-export function collectVersionVariables(
-  dependencies: BuildDependency[],
-  buildGradleContent: string
-): void {
-  for (const dep of dependencies) {
-    const dependency: GradleDependency = {
-      ...dep,
-      group: dep.depGroup,
-    };
-    const regexes = [
-      moduleStringVariableExpressionVersionFormatMatch(dependency),
-      moduleStringVariableInterpolationVersionFormatMatch(dependency),
-      groovyPluginVariableVersionFormatMatch(dependency),
-      kotlinPluginVariableVersionFormatMatch(dependency),
-      dependencyStringVariableExpressionFormatMatch(dependency),
-      ...moduleMapVariableVersionFormatMatch(dependency),
-      ...moduleKotlinNamedArgumentVariableVersionFormatMatch(dependency),
-      kotlinImplementationVariableVersionFormatMatch(dependency),
-      kotlinPluginVariableDotVersionFormatMatch(dependency),
-    ];
-
-    const depName = `${dependency.group}:${dependency.name}`;
-    for (const regex of regexes) {
-      const match = regex.exec(buildGradleContent);
-      if (match) {
-        variables[depName] = match[1];
-      }
-    }
-
-    if (!dep.currentValue) {
-      const dependencyLiteralRegex =
-        dependencyStringLiteralExpressionFormatMatch(dependency);
-      const currentValue = dependencyLiteralRegex.exec(buildGradleContent)?.[1];
-      if (currentValue) {
-        dep.currentValue = currentValue;
-      }
-    }
-  }
-}
-
-export function init(): void {
-  variables = {};
-}
-
-function updateVersionLiterals(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  const regexes: RegExp[] = [
-    moduleStringVersionFormatMatch(dependency),
-    groovyPluginStringVersionFormatMatch(dependency),
-    kotlinPluginStringVersionFormatMatch(dependency),
-    dependencyStringVersionFormatMatch(dependency),
-    ...moduleMapVersionFormatMatch(dependency),
-    ...moduleKotlinNamedArgumentVersionFormatMatch(dependency),
-  ];
-  let result = buildGradleContent;
-  for (const regex of regexes) {
-    const match = regex.exec(result);
-    if (match) {
-      result = result.replace(match[0], `${match[1]}${newValue}${match[2]}`);
-    }
-  }
-  return result === buildGradleContent ? null : result;
-}
-
-function updateLocalVariables(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  const regexes: RegExp[] = [
-    ...moduleMapVariableVersionFormatMatch(dependency),
-    moduleStringVariableInterpolationVersionFormatMatch(dependency),
-    moduleStringVariableExpressionVersionFormatMatch(dependency),
-    groovyPluginVariableVersionFormatMatch(dependency),
-    kotlinPluginVariableVersionFormatMatch(dependency),
-    kotlinImplementationVariableVersionFormatMatch(dependency),
-    ...moduleKotlinNamedArgumentVariableVersionFormatMatch(dependency),
-  ];
-  for (const regex of regexes) {
-    const match = regex.exec(buildGradleContent);
-    if (match) {
-      const variableDefinitionRegex = variableDefinitionFormatMatch(match[1]);
-      const variableDefinitionMatch =
-        variableDefinitionRegex.exec(buildGradleContent);
-      if (variableDefinitionMatch) {
-        return buildGradleContent.replace(
-          variableDefinitionMatch[0],
-          `${variableDefinitionMatch[1]}${newValue}${variableDefinitionMatch[3]}`
-        );
-      }
-    }
-  }
-  return null;
-}
-
-function updateGlobalVariables(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  const variable = variables[`${dependency.group}:${dependency.name}`];
-  if (variable) {
-    const regex = variableDefinitionFormatMatch(variable);
-    const match = regex.exec(buildGradleContent);
-    if (match) {
-      return buildGradleContent.replace(
-        match[0],
-        `${match[1]}${newValue}${match[3]}`
-      );
-    }
-  }
-  return null;
-}
-
-function updateGlobalMapVariables(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  let variable = variables[`${dependency.group}:${dependency.name}`];
-  if (variable && dependency.version) {
-    while (variable && variable.split('.').length > 0) {
-      const regex = variableMapDefinitionFormatMatch(
-        variable,
-        dependency.version
-      );
-      const match = regex.exec(buildGradleContent);
-      if (match) {
-        return buildGradleContent.replace(
-          match[0],
-          `${match[1]}${newValue}${match[3]}`
-        );
-      }
-
-      // Remove first path segment of variable and try again
-      variable = variable.split('.').splice(1).join('.');
-    }
-  }
-  return null;
-}
-
-function updateKotlinVariablesByExtra(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  const variable = variables[`${dependency.group}:${dependency.name}`];
-  if (variable) {
-    const regex = regEx(
-      `(val ${variable} by extra(?: {|\\()\\s*")(.*)("\\s*[})])`
-    );
-    const match = regex.exec(buildGradleContent);
-    if (match) {
-      return buildGradleContent.replace(
-        match[0],
-        `${match[1]}${newValue}${match[3]}`
-      );
-    }
-  }
-  return null;
-}
-
-function updatePropertyFileGlobalVariables(
-  dependency: GradleDependency,
-  buildGradleContent: string,
-  newValue: string
-): string | null {
-  const variable = variables[`${dependency.group}:${dependency.name}`];
-  if (variable) {
-    const regex = regEx(`(${variable}\\s*=\\s*)(.*)`, undefined, false);
-    const match = regex.exec(buildGradleContent);
-    if (match) {
-      return buildGradleContent.replace(match[0], `${match[1]}${newValue}`);
-    }
-  }
-  return null;
-}
-
-export function updateGradleVersion(
-  buildGradleContent: string,
-  dependency: GradleDependency,
-  newValue: string
-): string {
-  if (dependency) {
-    const updateFunctions: UpdateFunction[] = [
-      updateVersionLiterals,
-      updateLocalVariables,
-      updateGlobalVariables,
-      updateGlobalMapVariables,
-      updatePropertyFileGlobalVariables,
-      updateKotlinVariablesByExtra,
-    ];
-
-    for (const updateFunction of updateFunctions) {
-      const gradleContentUpdated = updateFunction(
-        dependency,
-        buildGradleContent,
-        newValue
-      );
-      if (gradleContentUpdated) {
-        return gradleContentUpdated;
-      }
-    }
-  }
-  return buildGradleContent;
-}
diff --git a/lib/modules/manager/gradle/deep/gradle-updates-report.spec.ts b/lib/modules/manager/gradle/deep/gradle-updates-report.spec.ts
deleted file mode 100644
index afb05a75b0aadac814a8960c02ab21ea552e55b5..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/gradle-updates-report.spec.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import fs from 'fs-extra';
-import tmp, { DirectoryResult } from 'tmp-promise';
-import upath from 'upath';
-import { GlobalConfig } from '../../../../config/global';
-import { exec } from '../../../../util/exec';
-import { extraEnv } from '../../gradle-wrapper/utils';
-import { ifSystemSupportsGradle } from './__testutil__/gradle';
-import {
-  GRADLE_DEPENDENCY_REPORT_FILENAME,
-  createRenovateGradlePlugin,
-} from './gradle-updates-report';
-import { GRADLE_DEPENDENCY_REPORT_OPTIONS } from '.';
-
-const fixtures = 'lib/modules/manager/gradle/deep/__fixtures__';
-
-describe('modules/manager/gradle/deep/gradle-updates-report', () => {
-  for (const gradleVersion of [5, 6]) {
-    ifSystemSupportsGradle(gradleVersion).describe(
-      'createRenovateGradlePlugin',
-      () => {
-        let workingDir: DirectoryResult;
-
-        beforeEach(async () => {
-          workingDir = await tmp.dir({ unsafeCleanup: true });
-          GlobalConfig.set({ localDir: workingDir.path });
-        });
-
-        afterEach(() => workingDir.cleanup());
-
-        it(`generates a report for Gradle version ${gradleVersion}`, async () => {
-          await fs.copy(`${fixtures}/minimal-project`, workingDir.path);
-          await fs.copy(
-            `${fixtures}/gradle-wrappers/${gradleVersion}`,
-            workingDir.path
-          );
-          await createRenovateGradlePlugin();
-
-          const gradlew = upath.join(workingDir.path, 'gradlew');
-          await exec(`${gradlew} ${GRADLE_DEPENDENCY_REPORT_OPTIONS}`, {
-            cwd: workingDir.path,
-            extraEnv,
-          });
-          expect(
-            fs.readJSONSync(
-              `${workingDir.path}/${GRADLE_DEPENDENCY_REPORT_FILENAME}`
-            )
-          ).toMatchSnapshot([
-            {
-              dependencies: [
-                {
-                  group: 'org.apache.commons',
-                  name: 'commons-collections4',
-                  version: '4.4',
-                },
-              ],
-              project: 'minimal-test',
-              repositories: [
-                'https://jcenter.bintray.com/',
-                'https://plugins.gradle.org/m2',
-              ],
-            },
-          ]);
-        }, 120000);
-      }
-    );
-  }
-});
diff --git a/lib/modules/manager/gradle/deep/gradle-updates-report.ts b/lib/modules/manager/gradle/deep/gradle-updates-report.ts
deleted file mode 100644
index 7b7b0b1e82e4dd34d94bb1b45180dccf23999fa1..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/gradle-updates-report.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-import upath from 'upath';
-import { logger } from '../../../../logger';
-import {
-  localPathExists,
-  readLocalFile,
-  writeLocalFile,
-} from '../../../../util/fs';
-import { regEx } from '../../../../util/regex';
-import { SbtPackageDatasource } from '../../../datasource/sbt-package';
-import type {
-  BuildDependency,
-  GradleDependencyWithRepos,
-  GradleProject,
-} from './types';
-
-export const GRADLE_DEPENDENCY_REPORT_FILENAME = 'gradle-renovate-report.json';
-
-export async function createRenovateGradlePlugin(
-  gradleRoot = '.'
-): Promise<void> {
-  const content = `
-import groovy.json.JsonOutput
-import org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency
-import java.util.concurrent.ConcurrentLinkedQueue
-
-def output = new ConcurrentLinkedQueue<>();
-
-allprojects {
-  tasks.register("renovate") {
-    doLast {
-      def project = ['project': project.name]
-      output << project
-
-      def repos = (repositories + buildscript.repositories + settings.pluginManagement.repositories)
-        .findAll { it instanceof MavenArtifactRepository && it.url.scheme ==~ /https?/ }
-        .collect { "$it.url" }
-        .unique()
-      project.repositories = repos
-
-      def deps = (buildscript.configurations + configurations + settings.buildscript.configurations)
-        .collect { it.dependencies + it.dependencyConstraints }
-        .flatten()
-        .findAll { it instanceof DefaultExternalModuleDependency || it instanceof DependencyConstraint }
-        .findAll { 'Pinned to the embedded Kotlin' != it.reason } // Embedded Kotlin dependencies
-        .collect { ['name':it.name, 'group':it.group, 'version':it.version] }
-      project.dependencies = deps
-    }
-  }
-}
-gradle.buildFinished {
-   def outputFile = new File('${GRADLE_DEPENDENCY_REPORT_FILENAME}')
-   def json = JsonOutput.toJson(output)
-   outputFile.write json
-}`;
-  const gradleInitFile = upath.join(gradleRoot, 'renovate-plugin.gradle');
-  logger.debug(
-    'Creating renovate-plugin.gradle file with renovate gradle plugin'
-  );
-  await writeLocalFile(gradleInitFile, content);
-}
-
-async function readGradleReport(localDir: string): Promise<GradleProject[]> {
-  const renovateReportFilename = upath.join(
-    localDir,
-    GRADLE_DEPENDENCY_REPORT_FILENAME
-  );
-  if (!(await localPathExists(renovateReportFilename))) {
-    return [];
-  }
-
-  const contents = await readLocalFile(renovateReportFilename, 'utf8');
-  try {
-    return JSON.parse(contents);
-  } catch (err) {
-    logger.error({ err }, 'Invalid Gradle extract JSON');
-    return [];
-  }
-}
-
-function mergeDependenciesWithRepositories(
-  project: GradleProject
-): GradleDependencyWithRepos[] {
-  if (!project.dependencies) {
-    return [];
-  }
-  return project.dependencies.map((dep) => ({
-    ...dep,
-    repos: [...project.repositories],
-  }));
-}
-
-function flattenDependencies(
-  accumulator: GradleDependencyWithRepos[],
-  currentValue: GradleDependencyWithRepos[]
-): GradleDependencyWithRepos[] {
-  accumulator.push(...currentValue);
-  return accumulator;
-}
-
-function combineReposOnDuplicatedDependencies(
-  accumulator: GradleDependencyWithRepos[],
-  currentValue: GradleDependencyWithRepos
-): GradleDependencyWithRepos[] {
-  const existingDependency = accumulator.find(
-    (dep) => dep.name === currentValue.name && dep.group === currentValue.group
-  );
-  if (existingDependency) {
-    const nonExistingRepos = currentValue.repos.filter(
-      (repo) => !existingDependency.repos.includes(repo)
-    );
-    existingDependency.repos.push(...nonExistingRepos);
-  } else {
-    accumulator.push(currentValue);
-  }
-  return accumulator;
-}
-
-function buildDependency(
-  gradleModule: GradleDependencyWithRepos
-): BuildDependency {
-  return {
-    name: gradleModule.name,
-    depGroup: gradleModule.group,
-    depName: `${gradleModule.group}:${gradleModule.name}`,
-    currentValue: gradleModule.version,
-    registryUrls: gradleModule.repos,
-  };
-}
-
-export async function extractDependenciesFromUpdatesReport(
-  localDir: string
-): Promise<BuildDependency[]> {
-  const gradleProjectConfigurations = await readGradleReport(localDir);
-
-  const dependencies = gradleProjectConfigurations
-    .map(mergeDependenciesWithRepositories, [])
-    .reduce(flattenDependencies, [])
-    .reduce(combineReposOnDuplicatedDependencies, []);
-
-  return dependencies
-    .map((gradleModule) => buildDependency(gradleModule))
-    .map((dep) => {
-      /* https://github.com/renovatebot/renovate/issues/4627 */
-      const { depName, currentValue } = dep;
-      if (depName.endsWith('_%%')) {
-        return {
-          ...dep,
-          depName: depName.replace(regEx(/_%%/), ''),
-          datasource: SbtPackageDatasource.id,
-        };
-      }
-      if (regEx(/^%.*%$/).test(currentValue)) {
-        return { ...dep, skipReason: 'version-placeholder' };
-      }
-      return dep;
-    });
-}
diff --git a/lib/modules/manager/gradle/deep/index-real.spec.ts b/lib/modules/manager/gradle/deep/index-real.spec.ts
deleted file mode 100644
index 7744c619de94862a511d92905382668e95e773c5..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/index-real.spec.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import fsExtra from 'fs-extra';
-import tmp, { DirectoryResult } from 'tmp-promise';
-import { GlobalConfig } from '../../../../config/global';
-import type { RepoGlobalConfig } from '../../../../config/types';
-import type { ExtractConfig } from '../../types';
-import { ifSystemSupportsGradle } from './__testutil__/gradle';
-import * as manager from '.';
-
-const fixtures = 'lib/modules/manager/gradle/deep/__fixtures__';
-
-const baseConfig = {
-  gradle: {
-    timeout: 60,
-  },
-};
-
-describe('modules/manager/gradle/deep/index-real', () => {
-  ifSystemSupportsGradle(6).describe('executeGradle integration', () => {
-    const SUCCESS_FILE_NAME = 'success.indicator';
-    let workingDir: DirectoryResult;
-    let testRunConfig: ExtractConfig;
-    let successFile: string;
-    let adminConfig: RepoGlobalConfig;
-
-    beforeEach(async () => {
-      workingDir = await tmp.dir({ unsafeCleanup: true });
-      successFile = '';
-      adminConfig = { localDir: workingDir.path };
-      GlobalConfig.set(adminConfig);
-      testRunConfig = { ...baseConfig };
-      await fsExtra.copy(`${fixtures}/minimal-project`, workingDir.path);
-      await fsExtra.copy(`${fixtures}/gradle-wrappers/6`, workingDir.path);
-
-      const mockPluginContent = `
-allprojects {
-  tasks.register("renovate") {
-    doLast {
-      new File('${SUCCESS_FILE_NAME}').write 'success'
-    }
-  }
-}`;
-      await fsExtra.writeFile(
-        `${workingDir.path}/renovate-plugin.gradle`,
-        mockPluginContent
-      );
-      successFile = `${workingDir.path}/${SUCCESS_FILE_NAME}`;
-    });
-
-    afterEach(async () => {
-      await workingDir.cleanup();
-      GlobalConfig.reset();
-    });
-
-    it('executes an executable gradle wrapper', async () => {
-      const gradlew = await fsExtra.stat(`${workingDir.path}/gradlew`);
-      await manager.executeGradle(testRunConfig, workingDir.path, gradlew);
-      await expect(fsExtra.readFile(successFile, 'utf8')).resolves.toBe(
-        'success'
-      );
-    }, 120000);
-
-    it('executes a not-executable gradle wrapper', async () => {
-      await fsExtra.chmod(`${workingDir.path}/gradlew`, '444');
-      const gradlew = await fsExtra.stat(`${workingDir.path}/gradlew`);
-
-      await manager.executeGradle(testRunConfig, workingDir.path, gradlew);
-      await expect(fsExtra.readFile(successFile, 'utf8')).resolves.toBe(
-        'success'
-      );
-    }, 120000);
-  });
-});
diff --git a/lib/modules/manager/gradle/deep/index.spec.ts b/lib/modules/manager/gradle/deep/index.spec.ts
deleted file mode 100644
index 4e8e204fe06a5d8ba3293cf40c3a84204a0134f0..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/index.spec.ts
+++ /dev/null
@@ -1,506 +0,0 @@
-import type { Stats } from 'fs';
-import os from 'os';
-import { join } from 'upath';
-import { extractAllPackageFiles, updateDependency } from '..';
-import { envMock, exec, mockExecAll } from '../../../../../test/exec-util';
-import {
-  addReplacingSerializer,
-  env,
-  fs,
-  loadFixture,
-} from '../../../../../test/util';
-import { GlobalConfig } from '../../../../config/global';
-import type { RepoGlobalConfig } from '../../../../config/types';
-import * as docker from '../../../../util/exec/docker';
-import {
-  ReleaseResult,
-  getPkgReleases as _getPkgReleases,
-} from '../../../datasource';
-import type { ExtractConfig } from '../../types';
-
-jest.mock('child_process');
-jest.mock('../../../../util/exec/env');
-jest.mock('../../../../util/fs');
-jest.mock('../../../datasource');
-
-const getPkgReleases: jest.MockInstance<
-  ReturnType<typeof _getPkgReleases>,
-  jest.ArgsType<typeof _getPkgReleases>
-> = _getPkgReleases as never;
-
-const adminConfig: RepoGlobalConfig = {
-  localDir: join('/foo/bar'),
-};
-
-const dockerAdminConfig = {
-  ...adminConfig,
-  binarySource: 'docker',
-};
-
-const gradleOutput = {
-  stdout: 'gradle output',
-  stderr: '',
-};
-
-const config: ExtractConfig = {
-  deepExtract: true,
-  gradle: {
-    timeout: 60,
-  },
-};
-
-const buildGradle = `
-dependency 'foo:foo:1.2.3'
-dependency "bar:bar:This.Is.Valid.Version.Good.Luck"
-dependency "baz:baz:\${bazVersion}"
-`;
-
-const graddleWrapperPropertiesData = loadFixture(
-  '/gradle-wrappers/6/gradle/wrapper/gradle-wrapper.properties'
-);
-
-addReplacingSerializer('gradlew.bat', '<gradlew>');
-addReplacingSerializer('./gradlew', '<gradlew>');
-
-const javaReleases: ReleaseResult = {
-  releases: [
-    { version: '8.0.302' },
-    { version: '11.0.12' },
-    { version: '16.0.2' },
-  ],
-};
-
-describe('modules/manager/gradle/deep/index', () => {
-  const updatesReport = loadFixture('updatesReport.json');
-
-  function setupMocks({
-    wrapperFilename = `gradlew`,
-    wrapperPropertiesFilename = 'gradle/wrapper/gradle-wrapper.properties',
-    pluginFilename = 'renovate-plugin.gradle',
-    report = updatesReport,
-    reportFilename = 'gradle-renovate-report.json',
-    packageFilename = 'build.gradle',
-    output = gradleOutput,
-  } = {}) {
-    fs.stat.mockImplementationOnce((_dirname) => {
-      if (wrapperFilename) {
-        return Promise.resolve({
-          isFile: () => true,
-        } as Stats);
-      }
-      return Promise.reject();
-    });
-    fs.writeLocalFile.mockImplementation((f, _content) => {
-      if (f?.endsWith(pluginFilename)) {
-        return Promise.resolve();
-      }
-      return Promise.reject();
-    });
-    fs.localPathExists.mockImplementation((f) => {
-      if (f?.endsWith(reportFilename)) {
-        return Promise.resolve(!!report);
-      }
-      if (f?.endsWith(wrapperPropertiesFilename)) {
-        return Promise.resolve(true);
-      }
-      return Promise.resolve(false);
-    });
-    fs.readLocalFile.mockImplementation((f) => {
-      if (f?.endsWith(reportFilename)) {
-        return report ? Promise.resolve(report) : Promise.reject();
-      }
-      if (f?.endsWith(packageFilename)) {
-        return Promise.resolve(buildGradle);
-      }
-      if (f?.endsWith(wrapperPropertiesFilename)) {
-        return Promise.resolve(graddleWrapperPropertiesData);
-      }
-      return Promise.resolve('');
-    });
-
-    return mockExecAll(exec, output);
-  }
-
-  beforeAll(() => {
-    GlobalConfig.set(adminConfig);
-  });
-
-  afterAll(() => {
-    GlobalConfig.reset();
-  });
-
-  beforeEach(() => {
-    jest.resetAllMocks();
-    jest.resetModules();
-    docker.resetPrefetchedImages();
-    env.getChildProcessEnv.mockReturnValue(envMock.basic);
-  });
-
-  describe('extractPackageFile', () => {
-    it('should update an existing module dependency', async () => {
-      const execSnapshots = setupMocks();
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should return gradle.kts dependencies', async () => {
-      const execSnapshots = setupMocks({ packageFilename: 'build.gradle.kts' });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle.kts',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle.kts',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should return empty if there are no dependencies', async () => {
-      const execSnapshots = setupMocks({
-        report: loadFixture('updatesReportEmpty.json'),
-      });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toBeEmptyArray();
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should return empty if there is no dependency report', async () => {
-      const execSnapshots = setupMocks({ report: null });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toBeEmptyArray();
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should return empty if renovate report is invalid', async () => {
-      const execSnapshots = setupMocks({ report: '!@#$%' });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toBeEmptyArray();
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should use repositories only for current project', async () => {
-      const execSnapshots = setupMocks({
-        report: loadFixture(`MultiProjectUpdatesReport.json`),
-      });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(3);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should execute gradlew when available', async () => {
-      const execSnapshots = setupMocks();
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should execute gradlew.bat when available on Windows', async () => {
-      const execSnapshots = setupMocks({ wrapperFilename: 'gradlew.bat' });
-      jest.spyOn(os, 'platform').mockReturnValueOnce('win32');
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should execute gradle if gradlew is not available', async () => {
-      const execSnapshots = setupMocks({
-        wrapperFilename: null,
-        wrapperPropertiesFilename: null,
-      });
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should return null and gradle should not be executed if no root build.gradle', async () => {
-      const execSnapshots = setupMocks({
-        wrapperFilename: null,
-        report: null,
-        wrapperPropertiesFilename: null,
-      });
-      const packageFiles = ['foo/build.gradle'];
-      expect(await extractAllPackageFiles(config, packageFiles)).toBeNull();
-      expect(execSnapshots).toBeEmpty();
-    });
-
-    it('should return gradle dependencies for build.gradle in subdirectories if there is gradlew in the same directory', async () => {
-      const execSnapshots = setupMocks({
-        wrapperFilename: 'baz/qux/gradlew',
-        wrapperPropertiesFilename:
-          'baz/qux/gradle/wrapper/gradle-wrapper.properties',
-        packageFilename: 'baz/qux/build.gradle',
-        reportFilename: 'baz/qux/gradle-renovate-report.json',
-        pluginFilename: 'baz/qux/renovate-plugin.gradle',
-      });
-
-      const dependencies = await extractAllPackageFiles(config, [
-        'baz/qux/build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'baz/qux/build.gradle',
-        },
-      ]);
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should use docker if required', async () => {
-      GlobalConfig.set(dockerAdminConfig);
-      const execSnapshots = setupMocks({
-        wrapperFilename: null,
-        wrapperPropertiesFilename: null,
-      });
-      getPkgReleases.mockResolvedValueOnce(javaReleases);
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should use docker even if gradlew is available', async () => {
-      GlobalConfig.set(dockerAdminConfig);
-      const execSnapshots = setupMocks();
-      getPkgReleases.mockResolvedValueOnce(javaReleases);
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
-      expect(execSnapshots).toMatchSnapshot();
-    });
-
-    it('should use docker even if gradlew.bat is available on Windows', async () => {
-      GlobalConfig.set(dockerAdminConfig);
-      jest.spyOn(os, 'platform').mockReturnValueOnce('win32');
-      const execSnapshots = setupMocks({ wrapperFilename: 'gradlew.bat' });
-      getPkgReleases.mockResolvedValueOnce(javaReleases);
-      const dependencies = await extractAllPackageFiles(config, [
-        'build.gradle',
-      ]);
-      expect(dependencies).toHaveLength(1);
-      expect(dependencies[0]?.deps).toHaveLength(8);
-      expect(dependencies).toMatchSnapshot([
-        {
-          datasource: 'maven',
-          packageFile: 'build.gradle',
-        },
-      ]);
-      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
-      expect(execSnapshots).toMatchSnapshot();
-    });
-  });
-
-  describe('updateDependency', () => {
-    it('should update an existing module dependency', () => {
-      const execSnapshots = mockExecAll(exec, gradleOutput);
-
-      const buildGradleContent = loadFixture(`build.gradle.example1`);
-      // prettier-ignore
-      const upgrade = {
-        deepExtract: true,
-        depGroup: 'cglib', name: 'cglib-nodep', version: '3.1', newValue: '3.2.8',
-      };
-      const buildGradleContentUpdated = updateDependency({
-        fileContent: buildGradleContent,
-        upgrade,
-      });
-
-      expect(buildGradleContent).not.toMatch('cglib:cglib-nodep:3.2.8');
-
-      expect(buildGradleContentUpdated).toMatch('cglib:cglib-nodep:3.2.8');
-      expect(buildGradleContentUpdated).not.toMatch('cglib:cglib-nodep:3.1');
-
-      expect(execSnapshots).toBeEmpty();
-    });
-
-    it('should update an existing plugin dependency', () => {
-      const execSnapshots = mockExecAll(exec, gradleOutput);
-
-      const buildGradleContent = `
-        plugins {
-            id "com.github.ben-manes.versions" version "0.20.0"
-        }
-        `;
-      const upgrade = {
-        deepExtract: true,
-        depGroup: 'com.github.ben-manes.versions',
-        name: 'com.github.ben-manes.versions.gradle.plugin',
-        version: '0.20.0',
-        newValue: '0.21.0',
-      };
-      const buildGradleContentUpdated = updateDependency({
-        fileContent: buildGradleContent,
-        upgrade,
-      });
-
-      expect(buildGradleContent).not.toMatch(
-        'id "com.github.ben-manes.versions" version "0.21.0"'
-      );
-
-      expect(buildGradleContentUpdated).toMatch(
-        'id "com.github.ben-manes.versions" version "0.21.0"'
-      );
-      expect(buildGradleContentUpdated).not.toMatch(
-        'id "com.github.ben-manes.versions" version "0.20.0"'
-      );
-
-      expect(execSnapshots).toBeEmpty();
-    });
-
-    it('should update an existing plugin dependency with Kotlin DSL', () => {
-      const execSnapshots = mockExecAll(exec, gradleOutput);
-
-      const buildGradleContent = `
-        plugins {
-            id("com.github.ben-manes.versions") version "0.20.0"
-        }
-        `;
-      const upgrade = {
-        deepExtract: true,
-        depGroup: 'com.github.ben-manes.versions',
-        name: 'com.github.ben-manes.versions.gradle.plugin',
-        version: '0.20.0',
-        newValue: '0.21.0',
-      };
-      const buildGradleContentUpdated = updateDependency({
-        fileContent: buildGradleContent,
-        upgrade,
-      });
-
-      expect(buildGradleContent).not.toMatch(
-        'id("com.github.ben-manes.versions") version "0.21.0"'
-      );
-
-      expect(buildGradleContentUpdated).toMatch(
-        'id("com.github.ben-manes.versions") version "0.21.0"'
-      );
-      expect(buildGradleContentUpdated).not.toMatch(
-        'id("com.github.ben-manes.versions") version "0.20.0"'
-      );
-
-      expect(execSnapshots).toBeEmpty();
-    });
-
-    it('should update dependencies in same file', () => {
-      const execSnapshots = mockExecAll(exec, gradleOutput);
-
-      const buildGradleContent = loadFixture(`build.gradle.example1`);
-
-      const upgrade = {
-        deepExtract: true,
-        depGroup: 'org.apache.openjpa',
-        name: 'openjpa',
-        version: '3.1.1',
-        newValue: '3.1.2',
-      };
-
-      const buildGradleContentUpdated = updateDependency({
-        fileContent: buildGradleContent,
-        upgrade,
-      });
-
-      expect(buildGradleContent).not.toContain(
-        'org.apache.openjpa:openjpa:3.1.2'
-      );
-
-      expect(buildGradleContentUpdated).not.toContain(
-        "dependency 'org.apache.openjpa:openjpa:3.1.1'"
-      );
-      expect(buildGradleContentUpdated).not.toContain(
-        "dependency 'org.apache.openjpa:openjpa:3.1.1'"
-      );
-
-      expect(buildGradleContentUpdated).toContain(
-        "classpath 'org.apache.openjpa:openjpa:3.1.2'"
-      );
-      expect(buildGradleContentUpdated).toContain(
-        "classpath 'org.apache.openjpa:openjpa:3.1.2'"
-      );
-
-      expect(execSnapshots).toBeEmpty();
-    });
-
-    it('should return null for replacement', () => {
-      const res = updateDependency({
-        fileContent: undefined,
-        upgrade: { deepExtract: true, updateType: 'replacement' },
-      });
-      expect(res).toBeNull();
-    });
-  });
-});
diff --git a/lib/modules/manager/gradle/deep/index.ts b/lib/modules/manager/gradle/deep/index.ts
deleted file mode 100644
index bc584876fc457543fc204504afbc9aa956e6880a..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/index.ts
+++ /dev/null
@@ -1,186 +0,0 @@
-import type { Stats } from 'fs';
-import upath from 'upath';
-import { GlobalConfig } from '../../../../config/global';
-import { TEMPORARY_ERROR } from '../../../../constants/error-messages';
-import { logger } from '../../../../logger';
-import { ExternalHostError } from '../../../../types/errors/external-host-error';
-import { exec } from '../../../../util/exec';
-import type { ExecOptions } from '../../../../util/exec/types';
-import { readLocalFile, stat } from '../../../../util/fs';
-import { MavenDatasource } from '../../../datasource/maven';
-import {
-  extraEnv,
-  getJavaVersioning,
-  gradleWrapperFileName,
-  prepareGradleCommand,
-} from '../../gradle-wrapper/utils';
-import type {
-  ExtractConfig,
-  PackageFile,
-  UpdateDependencyConfig,
-  Upgrade,
-} from '../../types';
-import {
-  collectVersionVariables,
-  init,
-  updateGradleVersion,
-} from './build-gradle';
-import {
-  createRenovateGradlePlugin,
-  extractDependenciesFromUpdatesReport,
-} from './gradle-updates-report';
-import type { GradleDependency } from './types';
-import { getDockerConstraint, getDockerPreCommands } from './utils';
-
-export const GRADLE_DEPENDENCY_REPORT_OPTIONS =
-  '--init-script renovate-plugin.gradle renovate';
-const TIMEOUT_CODE = 143;
-
-async function prepareGradleCommandFallback(
-  gradlewName: string,
-  cwd: string,
-  gradlew: Stats | null,
-  args: string
-): Promise<string> {
-  const cmd = await prepareGradleCommand(gradlewName, cwd, gradlew, args);
-  if (cmd === null) {
-    return `gradle ${args}`;
-  }
-  return cmd;
-}
-
-export async function executeGradle(
-  config: ExtractConfig,
-  cwd: string,
-  gradlew: Stats | null,
-  gradleRoot = '.'
-): Promise<void> {
-  let stdout: string;
-  let stderr: string;
-  let timeout: number;
-  if (config.gradle?.timeout) {
-    timeout = config.gradle.timeout * 1000;
-  }
-  const cmd = await prepareGradleCommandFallback(
-    gradleWrapperFileName(),
-    cwd,
-    gradlew,
-    GRADLE_DEPENDENCY_REPORT_OPTIONS
-  );
-  const execOptions: ExecOptions = {
-    timeout,
-    cwd,
-    docker: {
-      image: 'java',
-      tagConstraint:
-        config.constraints?.java ?? (await getDockerConstraint(gradleRoot)),
-      tagScheme: getJavaVersioning(),
-    },
-    preCommands: await getDockerPreCommands(gradleRoot),
-    extraEnv,
-  };
-  try {
-    logger.debug({ cmd }, 'Start gradle command');
-    ({ stdout, stderr } = await exec(cmd, execOptions));
-  } catch (err) /* istanbul ignore next */ {
-    if (err.message === TEMPORARY_ERROR) {
-      throw err;
-    }
-    if (err.code === TIMEOUT_CODE) {
-      throw new ExternalHostError(err, 'gradle');
-    }
-    logger.warn({ errMessage: err.message }, 'Gradle extraction failed');
-    return;
-  }
-  logger.debug(stdout + stderr);
-  logger.debug('Gradle report complete');
-}
-
-export async function extractAllPackageFiles(
-  config: ExtractConfig,
-  packageFiles: string[]
-): Promise<PackageFile[] | null> {
-  let rootBuildGradle: string | undefined;
-  let gradlew: Stats | null;
-  const { localDir } = GlobalConfig.get();
-  for (const packageFile of packageFiles) {
-    const dirname = upath.dirname(packageFile);
-    const gradlewPath = upath.join(dirname, gradleWrapperFileName());
-    gradlew = await stat(upath.join(localDir, gradlewPath)).catch(() => null);
-
-    if (['build.gradle', 'build.gradle.kts'].includes(packageFile)) {
-      rootBuildGradle = packageFile;
-      break;
-    }
-
-    // If there is gradlew in the same directory, the directory should be a Gradle project root
-    if (gradlew?.isFile() === true) {
-      rootBuildGradle = packageFile;
-      break;
-    }
-  }
-  if (!rootBuildGradle) {
-    logger.warn('No root build.gradle nor build.gradle.kts found - skipping');
-    return null;
-  }
-  logger.debug('Extracting dependencies from all gradle files');
-
-  const gradleRoot = upath.dirname(rootBuildGradle);
-  const cwd = upath.join(localDir, gradleRoot);
-
-  await createRenovateGradlePlugin(gradleRoot);
-  await executeGradle(config, cwd, gradlew, gradleRoot);
-
-  init();
-
-  const dependencies = await extractDependenciesFromUpdatesReport(gradleRoot);
-  if (dependencies.length === 0) {
-    return [];
-  }
-
-  const gradleFiles: PackageFile[] = [];
-  for (const packageFile of packageFiles) {
-    const content = await readLocalFile(packageFile, 'utf8');
-    // istanbul ignore else
-    if (content) {
-      gradleFiles.push({
-        packageFile,
-        datasource: MavenDatasource.id,
-        deps: dependencies,
-      });
-
-      collectVersionVariables(dependencies, content);
-    } else {
-      logger.debug({ packageFile }, 'packageFile has no content');
-    }
-  }
-
-  return gradleFiles;
-}
-
-function buildGradleDependency(config: Upgrade): GradleDependency {
-  return {
-    group: config.depGroup,
-    name: config.name,
-    version: config.currentValue,
-  };
-}
-
-export function updateDependency({
-  fileContent,
-  upgrade,
-}: UpdateDependencyConfig): string {
-  // prettier-ignore
-  logger.debug(`gradle.updateDependency(): packageFile:${upgrade.packageFile} depName:${upgrade.depName}, version:${upgrade.currentValue} ==> ${upgrade.newValue}`);
-
-  if (upgrade.updateType === 'replacement') {
-    logger.warn('gradle manager does not support replacement updates yet');
-    return null;
-  }
-
-  return updateGradleVersion(
-    fileContent,
-    buildGradleDependency(upgrade),
-    upgrade.newValue
-  );
-}
diff --git a/lib/modules/manager/gradle/deep/types.ts b/lib/modules/manager/gradle/deep/types.ts
deleted file mode 100644
index ba4df121fc565a4e2dc739afd208546c6aa892ce..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/types.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-export interface GradleDependency {
-  group: string;
-  name: string;
-  version?: string;
-}
-
-export interface UpdateFunction {
-  (dependency: GradleDependency, buildGradleContent: string, newValue: string):
-    | string
-    | null;
-}
-
-export interface GradleProject {
-  project: string;
-  repositories: string[];
-  dependencies: GradleDependency[];
-}
-
-export type GradleDependencyWithRepos = GradleDependency & { repos: string[] };
-
-export interface BuildDependency {
-  name: string;
-  depGroup: string;
-  depName?: string;
-  currentValue?: string;
-  registryUrls?: string[];
-}
diff --git a/lib/modules/manager/gradle/deep/utils.ts b/lib/modules/manager/gradle/deep/utils.ts
deleted file mode 100644
index 5285314a51695b4ac3a25f27cfe42a2449299b6b..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/deep/utils.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import upath from 'upath';
-import { GlobalConfig } from '../../../../config/global';
-import { localPathExists, readLocalFile } from '../../../../util/fs';
-import {
-  extractGradleVersion,
-  getJavaContraint,
-} from '../../gradle-wrapper/utils';
-
-const GradleWrapperProperties = 'gradle/wrapper/gradle-wrapper.properties';
-
-export async function getDockerConstraint(
-  gradleRoot: string
-): Promise<string | null> {
-  if (GlobalConfig.get('binarySource') !== 'docker') {
-    // ignore
-    return null;
-  }
-
-  const fileContent = await readLocalFile(
-    upath.join(gradleRoot, GradleWrapperProperties),
-    'utf8'
-  );
-
-  const version = extractGradleVersion(fileContent)?.version;
-
-  return getJavaContraint(version);
-}
-
-export async function getDockerPreCommands(
-  gradleRoot: string
-): Promise<string[]> {
-  if (GlobalConfig.get('binarySource') !== 'docker') {
-    // ignore
-    return null;
-  }
-
-  if (await localPathExists(upath.join(gradleRoot, GradleWrapperProperties))) {
-    return null;
-  }
-
-  return ['install-tool gradle latest'];
-}
diff --git a/lib/modules/manager/gradle/shallow/extract.spec.ts b/lib/modules/manager/gradle/extract.spec.ts
similarity index 97%
rename from lib/modules/manager/gradle/shallow/extract.spec.ts
rename to lib/modules/manager/gradle/extract.spec.ts
index 546f8fc37174a7244b116d25552bb85205a6672e..ec7c372c5c882f0be25a6e10b223d105594e8333 100644
--- a/lib/modules/manager/gradle/shallow/extract.spec.ts
+++ b/lib/modules/manager/gradle/extract.spec.ts
@@ -1,8 +1,8 @@
-import { extractAllPackageFiles } from '..';
-import { fs, loadFixture } from '../../../../../test/util';
-import type { ExtractConfig } from '../../types';
+import { fs, loadFixture } from '../../../../test/util';
+import type { ExtractConfig } from '../types';
+import { extractAllPackageFiles } from '.';
 
-jest.mock('../../../../util/fs');
+jest.mock('../../../util/fs');
 
 function mockFs(files: Record<string, string>): void {
   fs.readLocalFile.mockImplementation((fileName: string): Promise<string> => {
@@ -13,7 +13,7 @@ function mockFs(files: Record<string, string>): void {
   });
 }
 
-describe('modules/manager/gradle/shallow/extract', () => {
+describe('modules/manager/gradle/extract', () => {
   afterAll(() => {
     jest.resetAllMocks();
   });
diff --git a/lib/modules/manager/gradle/shallow/extract.ts b/lib/modules/manager/gradle/extract.ts
similarity index 89%
rename from lib/modules/manager/gradle/shallow/extract.ts
rename to lib/modules/manager/gradle/extract.ts
index 8dcc957d76e02640d8dec75c0fa415fbe5a364b9..7fd945f5ad32431a8c8d7d4d00158e47728efed5 100644
--- a/lib/modules/manager/gradle/shallow/extract.ts
+++ b/lib/modules/manager/gradle/extract.ts
@@ -1,19 +1,15 @@
 import upath from 'upath';
-import { logger } from '../../../../logger';
-import { readLocalFile } from '../../../../util/fs';
-import {
-  MavenDatasource,
-  defaultRegistryUrls,
-} from '../../../datasource/maven';
-import type {
-  ExtractConfig,
-  PackageDependency,
-  PackageFile,
-} from '../../types';
-import type { GradleManagerData } from '../types';
+import { logger } from '../../../logger';
+import { readLocalFile } from '../../../util/fs';
+import { MavenDatasource, defaultRegistryUrls } from '../../datasource/maven';
+import type { ExtractConfig, PackageDependency, PackageFile } from '../types';
 import { parseCatalog } from './extract/catalog';
 import { parseGradle, parseProps } from './parser';
-import type { PackageVariables, VariableRegistry } from './types';
+import type {
+  GradleManagerData,
+  PackageVariables,
+  VariableRegistry,
+} from './types';
 import {
   getVars,
   isGradleFile,
diff --git a/lib/modules/manager/gradle/shallow/extract/catalog.ts b/lib/modules/manager/gradle/extract/catalog.ts
similarity index 96%
rename from lib/modules/manager/gradle/shallow/extract/catalog.ts
rename to lib/modules/manager/gradle/extract/catalog.ts
index 2729da5f06b53daba623ccddab8e558580b8a85e..d5915e1b2ba9085109fe95ef00c61d0e6b1c3e1a 100644
--- a/lib/modules/manager/gradle/shallow/extract/catalog.ts
+++ b/lib/modules/manager/gradle/extract/catalog.ts
@@ -1,12 +1,12 @@
 import { parse } from '@iarna/toml';
 import deepmerge from 'deepmerge';
-import { hasKey } from '../../../../../util/object';
-import type { PackageDependency } from '../../../types';
-import type { GradleManagerData } from '../../types';
+import { hasKey } from '../../../../util/object';
+import type { PackageDependency } from '../../types';
 import type {
   GradleCatalog,
   GradleCatalogArtifactDescriptor,
   GradleCatalogModuleDescriptor,
+  GradleManagerData,
   VersionPointer,
 } from '../types';
 
diff --git a/lib/modules/manager/gradle/index.ts b/lib/modules/manager/gradle/index.ts
index a3ea5152b0b90ac8a008b8c8a39c7bd23cf9742d..5e9faad63f7a7f3ef056ce02bd00d455604638c1 100644
--- a/lib/modules/manager/gradle/index.ts
+++ b/lib/modules/manager/gradle/index.ts
@@ -1,31 +1,9 @@
 import { ProgrammingLanguage } from '../../../constants';
 import { MavenDatasource } from '../../datasource/maven';
 import * as gradleVersioning from '../../versioning/gradle';
-import type {
-  ExtractConfig,
-  PackageFile,
-  UpdateDependencyConfig,
-} from '../types';
-import * as deep from './deep';
-import * as shallow from './shallow';
-import type { GradleManagerData } from './types';
 
-export function extractAllPackageFiles(
-  config: ExtractConfig,
-  packageFiles: string[]
-): Promise<PackageFile[] | null> {
-  return config.deepExtract
-    ? deep.extractAllPackageFiles(config, packageFiles)
-    : shallow.extractAllPackageFiles(config, packageFiles);
-}
-
-export function updateDependency(
-  params: UpdateDependencyConfig<GradleManagerData>
-): string | null {
-  return params.upgrade?.deepExtract
-    ? deep.updateDependency(params)
-    : shallow.updateDependency(params);
-}
+export { extractAllPackageFiles } from './extract';
+export { updateDependency } from './update';
 
 export const language = ProgrammingLanguage.Java;
 
diff --git a/lib/modules/manager/gradle/shallow/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts
similarity index 97%
rename from lib/modules/manager/gradle/shallow/parser.spec.ts
rename to lib/modules/manager/gradle/parser.spec.ts
index b5c04fdd473b6f3bee70f36d896ee27fd893972f..0c49f9e93d34954228bc61d6603708189e6a9713 100644
--- a/lib/modules/manager/gradle/shallow/parser.spec.ts
+++ b/lib/modules/manager/gradle/parser.spec.ts
@@ -1,4 +1,4 @@
-import { loadFixture } from '../../../../../test/util';
+import { loadFixture } from '../../../../test/util';
 import {
   GOOGLE_REPO,
   GRADLE_PLUGIN_PORTAL_REPO,
@@ -7,7 +7,7 @@ import {
 } from './common';
 import { parseGradle, parseProps } from './parser';
 
-describe('modules/manager/gradle/shallow/parser', () => {
+describe('modules/manager/gradle/parser', () => {
   it('handles end of input', () => {
     expect(parseGradle('version = ').deps).toBeEmpty();
     expect(parseGradle('id "foo.bar" version').deps).toBeEmpty();
@@ -116,7 +116,7 @@ describe('modules/manager/gradle/shallow/parser', () => {
     });
 
     it('parses fixture from "gradle" manager', () => {
-      const content = loadFixture('build.gradle.example1', '../deep/');
+      const content = loadFixture('build.gradle.example1');
       const { deps } = parseGradle(content, {}, 'build.gradle');
       const replacementIndices = deps.map(({ managerData, currentValue }) =>
         content.slice(managerData.fileReplacePosition).indexOf(currentValue)
diff --git a/lib/modules/manager/gradle/shallow/parser.ts b/lib/modules/manager/gradle/parser.ts
similarity index 98%
rename from lib/modules/manager/gradle/shallow/parser.ts
rename to lib/modules/manager/gradle/parser.ts
index 509747e453d19d988e4ee78b06810795bdf2a1d7..7d60b48d1f6d04497bc107b25efc413b9a5044fd 100644
--- a/lib/modules/manager/gradle/shallow/parser.ts
+++ b/lib/modules/manager/gradle/parser.ts
@@ -1,9 +1,8 @@
 import url from 'url';
 import is from '@sindresorhus/is';
-import { logger } from '../../../../logger';
-import { newlineRegex, regEx } from '../../../../util/regex';
-import type { PackageDependency } from '../../types';
-import type { GradleManagerData } from '../types';
+import { logger } from '../../../logger';
+import { newlineRegex, regEx } from '../../../util/regex';
+import type { PackageDependency } from '../types';
 import {
   GOOGLE_REPO,
   GRADLE_PLUGIN_PORTAL_REPO,
@@ -13,6 +12,7 @@ import {
 } from './common';
 import { tokenize } from './tokenizer';
 import type {
+  GradleManagerData,
   MatchConfig,
   PackageVariables,
   ParseGradleResult,
diff --git a/lib/modules/manager/gradle/readme.md b/lib/modules/manager/gradle/readme.md
index 1eca3d95d6997d9f840fec285e50102db13b4342..407861566bb9e9f61365b896f52935eeb9f7889c 100644
--- a/lib/modules/manager/gradle/readme.md
+++ b/lib/modules/manager/gradle/readme.md
@@ -1,9 +1,2 @@
-The `gradle` manager's default behavior uses a custom parser written in JavaScript, similar to many others managers.
-It was initially known as `gradle-lite` but is now integrated into the `gradle` manager and used as default.
-
-If `deepExtract` is configured to `true`, Renovate instead extracts Gradle dependencies by calling a custom Gradle script.
-The `gradle` binary is then used to extract Maven-type dependencies.
-
-<!-- prettier-ignore -->
-!!! warning
-    The `deepExtract` configuration option is deprecated, and will be removed in a future Renovate release.
+The `gradle` manager uses a custom parser written in JavaScript, similar to many others managers.
+It does not call `gradle` directly in order to extract a list of dependencies.
diff --git a/lib/modules/manager/gradle/shallow/index.ts b/lib/modules/manager/gradle/shallow/index.ts
deleted file mode 100644
index 0ed052d9bff08a4385bd7fd6031eb565cd2e1b5b..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/shallow/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { extractAllPackageFiles } from './extract';
-export { updateDependency } from './update';
diff --git a/lib/modules/manager/gradle/shallow/types.ts b/lib/modules/manager/gradle/shallow/types.ts
deleted file mode 100644
index ff1bcd5aa6e537ae78e008a6f8bd0a592fa2c574..0000000000000000000000000000000000000000
--- a/lib/modules/manager/gradle/shallow/types.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import type { PackageDependency } from '../../types';
-import type { GradleManagerData } from '../types';
-import type { TokenType } from './common';
-
-export interface VariableData extends GradleManagerData {
-  key: string;
-  value: string;
-}
-
-export type PackageVariables = Record<string, VariableData>;
-export type VariableRegistry = Record<string, PackageVariables>;
-
-export interface Token {
-  type: TokenType;
-  value: string;
-  offset: number;
-}
-
-export interface StringInterpolation extends Token {
-  type: TokenType.StringInterpolation;
-  children: Token[]; // Tokens inside double-quoted string that are subject of interpolation
-  isComplete: boolean; // True if token has parsed completely
-  isValid: boolean; // False if string contains something unprocessable
-}
-
-// Matcher on single token
-export interface SyntaxMatcher {
-  matchType: TokenType | TokenType[];
-  matchValue?: string | string[];
-  lookahead?: boolean;
-  tokenMapKey?: string;
-}
-
-export type TokenMap = Record<string, Token>;
-
-export interface SyntaxHandlerInput {
-  packageFile: string;
-  variables: PackageVariables;
-  tokenMap: TokenMap;
-}
-
-export type SyntaxHandlerOutput = {
-  deps?: PackageDependency<GradleManagerData>[];
-  vars?: PackageVariables;
-  urls?: string[];
-} | null;
-
-export interface SyntaxMatchConfig {
-  matchers: SyntaxMatcher[];
-  handler: (_: SyntaxHandlerInput) => SyntaxHandlerOutput;
-}
-
-export interface MatchConfig {
-  tokens: Token[];
-  variables: PackageVariables;
-  packageFile: string;
-}
-
-export interface ParseGradleResult {
-  deps: PackageDependency<GradleManagerData>[];
-  urls: string[];
-  vars: PackageVariables;
-}
-
-export interface GradleCatalog {
-  versions?: Record<string, string>;
-  libraries?: Record<
-    string,
-    GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string
-  >;
-  plugins?: Record<string, GradleCatalogPluginDescriptor | string>;
-}
-
-export interface GradleCatalogModuleDescriptor {
-  module: string;
-  version?: string | VersionPointer;
-}
-
-export interface GradleCatalogArtifactDescriptor {
-  name: string;
-  group: string;
-  version?: string | VersionPointer;
-}
-
-export interface GradleCatalogPluginDescriptor {
-  id: string;
-  version: string | VersionPointer;
-}
-
-export interface VersionPointer {
-  ref: string;
-}
diff --git a/lib/modules/manager/gradle/shallow/tokenizer.spec.ts b/lib/modules/manager/gradle/tokenizer.spec.ts
similarity index 98%
rename from lib/modules/manager/gradle/shallow/tokenizer.spec.ts
rename to lib/modules/manager/gradle/tokenizer.spec.ts
index b2a4d4f5fbfb376d834355e3dafabf25ae71983a..ff5cd3519aab5caaa6fe5a804642afbc71677ea6 100644
--- a/lib/modules/manager/gradle/shallow/tokenizer.spec.ts
+++ b/lib/modules/manager/gradle/tokenizer.spec.ts
@@ -5,7 +5,7 @@ function tokenTypes(input): string[] {
   return extractRawTokens(input).map((token) => token.type);
 }
 
-describe('modules/manager/gradle/shallow/tokenizer', () => {
+describe('modules/manager/gradle/tokenizer', () => {
   it('extractTokens', () => {
     const samples = {
       ' ': [TokenType.Space],
diff --git a/lib/modules/manager/gradle/shallow/tokenizer.ts b/lib/modules/manager/gradle/tokenizer.ts
similarity index 99%
rename from lib/modules/manager/gradle/shallow/tokenizer.ts
rename to lib/modules/manager/gradle/tokenizer.ts
index 95d990bfc29735f0c20f8cbc32f27522bcf236fc..4a6a19e909dd6aff89288f262b4f7f4bd37803fc 100644
--- a/lib/modules/manager/gradle/shallow/tokenizer.ts
+++ b/lib/modules/manager/gradle/tokenizer.ts
@@ -1,5 +1,5 @@
 import moo from 'moo';
-import { regEx } from '../../../../util/regex';
+import { regEx } from '../../../util/regex';
 import { TokenType } from './common';
 import type { StringInterpolation, Token } from './types';
 
diff --git a/lib/modules/manager/gradle/types.ts b/lib/modules/manager/gradle/types.ts
index 915ce0da45f9d0b88f875f1405ebd13829ee5266..365518686aa42d7ac4d5988eb0169d3bddfdb583 100644
--- a/lib/modules/manager/gradle/types.ts
+++ b/lib/modules/manager/gradle/types.ts
@@ -1,4 +1,96 @@
+import type { PackageDependency } from '../types';
+import type { TokenType } from './common';
+
 export interface GradleManagerData {
   fileReplacePosition?: number;
   packageFile?: string;
 }
+
+export interface VariableData extends GradleManagerData {
+  key: string;
+  value: string;
+}
+
+export type PackageVariables = Record<string, VariableData>;
+export type VariableRegistry = Record<string, PackageVariables>;
+
+export interface Token {
+  type: TokenType;
+  value: string;
+  offset: number;
+}
+
+export interface StringInterpolation extends Token {
+  type: TokenType.StringInterpolation;
+  children: Token[]; // Tokens inside double-quoted string that are subject of interpolation
+  isComplete: boolean; // True if token has parsed completely
+  isValid: boolean; // False if string contains something unprocessable
+}
+
+// Matcher on single token
+export interface SyntaxMatcher {
+  matchType: TokenType | TokenType[];
+  matchValue?: string | string[];
+  lookahead?: boolean;
+  tokenMapKey?: string;
+}
+
+export type TokenMap = Record<string, Token>;
+
+export interface SyntaxHandlerInput {
+  packageFile: string;
+  variables: PackageVariables;
+  tokenMap: TokenMap;
+}
+
+export type SyntaxHandlerOutput = {
+  deps?: PackageDependency<GradleManagerData>[];
+  vars?: PackageVariables;
+  urls?: string[];
+} | null;
+
+export interface SyntaxMatchConfig {
+  matchers: SyntaxMatcher[];
+  handler: (_: SyntaxHandlerInput) => SyntaxHandlerOutput;
+}
+
+export interface MatchConfig {
+  tokens: Token[];
+  variables: PackageVariables;
+  packageFile: string;
+}
+
+export interface ParseGradleResult {
+  deps: PackageDependency<GradleManagerData>[];
+  urls: string[];
+  vars: PackageVariables;
+}
+
+export interface GradleCatalog {
+  versions?: Record<string, string>;
+  libraries?: Record<
+    string,
+    GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string
+  >;
+  plugins?: Record<string, GradleCatalogPluginDescriptor | string>;
+}
+
+export interface GradleCatalogModuleDescriptor {
+  module: string;
+  version?: string | VersionPointer;
+}
+
+export interface GradleCatalogArtifactDescriptor {
+  name: string;
+  group: string;
+  version?: string | VersionPointer;
+}
+
+export interface GradleCatalogPluginDescriptor {
+  id: string;
+  version: string | VersionPointer;
+}
+
+export interface VersionPointer {
+  ref: string;
+}
diff --git a/lib/modules/manager/gradle/shallow/update.spec.ts b/lib/modules/manager/gradle/update.spec.ts
similarity index 94%
rename from lib/modules/manager/gradle/shallow/update.spec.ts
rename to lib/modules/manager/gradle/update.spec.ts
index c10c38886ec6c85081a108d9a48b5d89fe4a2a94..7a652f40f1dc264bea3de67948f80ebe36671bed 100644
--- a/lib/modules/manager/gradle/shallow/update.spec.ts
+++ b/lib/modules/manager/gradle/update.spec.ts
@@ -1,6 +1,6 @@
-import { updateDependency } from '..';
+import { updateDependency } from '.';
 
-describe('modules/manager/gradle/shallow/update', () => {
+describe('modules/manager/gradle/update', () => {
   it('replaces', () => {
     expect(
       updateDependency({
diff --git a/lib/modules/manager/gradle/shallow/update.ts b/lib/modules/manager/gradle/update.ts
similarity index 87%
rename from lib/modules/manager/gradle/shallow/update.ts
rename to lib/modules/manager/gradle/update.ts
index 2c1196ebfceb303758c941b4a41b18c277561d60..dd254f4e58d90b019dbc91d5cc86eee4de808690 100644
--- a/lib/modules/manager/gradle/shallow/update.ts
+++ b/lib/modules/manager/gradle/update.ts
@@ -1,6 +1,6 @@
-import { logger } from '../../../../logger';
-import type { UpdateDependencyConfig } from '../../types';
-import type { GradleManagerData } from '../types';
+import { logger } from '../../../logger';
+import type { UpdateDependencyConfig } from '../types';
+import type { GradleManagerData } from './types';
 import { versionLikeSubstring } from './utils';
 
 export function updateDependency({
diff --git a/lib/modules/manager/gradle/shallow/utils.spec.ts b/lib/modules/manager/gradle/utils.spec.ts
similarity index 99%
rename from lib/modules/manager/gradle/shallow/utils.spec.ts
rename to lib/modules/manager/gradle/utils.spec.ts
index 2416d447da00f9689a194066700f6ddb80c4a4d5..54be14d032618d1b8d4947b5bf69bbbf98d1fe35 100644
--- a/lib/modules/manager/gradle/shallow/utils.spec.ts
+++ b/lib/modules/manager/gradle/utils.spec.ts
@@ -9,7 +9,7 @@ import {
   versionLikeSubstring,
 } from './utils';
 
-describe('modules/manager/gradle/shallow/utils', () => {
+describe('modules/manager/gradle/utils', () => {
   it('versionLikeSubstring', () => {
     [
       '1.2.3',
diff --git a/lib/modules/manager/gradle/shallow/utils.ts b/lib/modules/manager/gradle/utils.ts
similarity index 95%
rename from lib/modules/manager/gradle/shallow/utils.ts
rename to lib/modules/manager/gradle/utils.ts
index e809a6e97cf255287133b29506db312abb9c8156..076646b6ddeaf6b527d7612ab0fa90ce57684edb 100644
--- a/lib/modules/manager/gradle/shallow/utils.ts
+++ b/lib/modules/manager/gradle/utils.ts
@@ -1,9 +1,13 @@
 import upath from 'upath';
-import { regEx } from '../../../../util/regex';
-import type { PackageDependency } from '../../types';
-import type { GradleManagerData } from '../types';
+import { regEx } from '../../../util/regex';
+import type { PackageDependency } from '../types';
 import { TokenType } from './common';
-import type { PackageVariables, Token, VariableRegistry } from './types';
+import type {
+  GradleManagerData,
+  PackageVariables,
+  Token,
+  VariableRegistry,
+} from './types';
 
 const artifactRegex = regEx(
   '^[a-zA-Z][-_a-zA-Z0-9]*(?:\\.[a-zA-Z0-9][-_a-zA-Z0-9]*?)*$'
diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts
index 1d0e53231d32497eae942426ff93608acf0fc95d..1bece70c5c8e42a700eab2d15ba4e9bcd78ab69b 100644
--- a/lib/modules/manager/types.ts
+++ b/lib/modules/manager/types.ts
@@ -24,7 +24,6 @@ export interface ExtractConfig {
   npmrcMerge?: boolean;
   skipInstalls?: boolean;
   updateInternalDeps?: boolean;
-  deepExtract?: boolean;
 }
 
 export interface CustomExtractConfig extends ExtractConfig {
@@ -191,7 +190,6 @@ export interface Upgrade<T = Record<string, any>>
   isLockFileMaintenance?: boolean;
   isRemediation?: boolean;
   isVulnerabilityAlert?: boolean;
-  deepExtract?: boolean;
 }
 
 export interface ArtifactError {
diff --git a/tsconfig.strict.json b/tsconfig.strict.json
index c1bb4fa102b45cf8dc7eec9863ae2cd72c7d3408..4325b2499022d3a3abdc5c71fa1dca5ac4143b00 100644
--- a/tsconfig.strict.json
+++ b/tsconfig.strict.json
@@ -165,16 +165,13 @@
     "lib/modules/manager/gradle-wrapper/extract.ts",
     "lib/modules/manager/gradle-wrapper/index.ts",
     "lib/modules/manager/gradle-wrapper/utils.ts",
-    "lib/modules/manager/gradle/deep/__testutil__/gradle.ts",
-    "lib/modules/manager/gradle/deep/gradle-updates-report.ts",
-    "lib/modules/manager/gradle/deep/index.ts",
-    "lib/modules/manager/gradle/deep/utils.ts",
     "lib/modules/manager/gradle/index.ts",
-    "lib/modules/manager/gradle/shallow/extract.ts",
-    "lib/modules/manager/gradle/shallow/extract/catalog.ts",
-    "lib/modules/manager/gradle/shallow/index.ts",
-    "lib/modules/manager/gradle/shallow/parser.ts",
-    "lib/modules/manager/gradle/shallow/update.ts",
+    "lib/modules/manager/gradle/extract.ts",
+    "lib/modules/manager/gradle/extract/catalog.ts",
+    "lib/modules/manager/gradle/index.ts",
+    "lib/modules/manager/gradle/parser.ts",
+    "lib/modules/manager/gradle/update.ts",
+    "lib/modules/manager/gradle/__testutil__/gradle.ts",
     "lib/modules/manager/helm-requirements/extract.ts",
     "lib/modules/manager/helm-requirements/index.ts",
     "lib/modules/manager/helm-values/extract.ts",