diff --git a/lib/manager/gradle/build-gradle.spec.ts b/lib/manager/gradle/build-gradle.spec.ts
index 802ca2e75d01c0121d5ecb1cf9197f90da8b3dc3..a8d0b3c5ffd4014a84f19ceb2efff1cd84017bfb 100644
--- a/lib/manager/gradle/build-gradle.spec.ts
+++ b/lib/manager/gradle/build-gradle.spec.ts
@@ -514,6 +514,51 @@ describe('lib/manager/gradle/updateGradleVersion', () => {
     expect(updatedGradleFile).toEqual('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}"  )'; // eslint-disable-line no-template-curly-in-string
+    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).toEqual(
+      '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}"  )'; // eslint-disable-line no-template-curly-in-string
+    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).toEqual(
+      '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}"  )'; // eslint-disable-line no-template-curly-in-string
diff --git a/lib/manager/gradle/build-gradle.ts b/lib/manager/gradle/build-gradle.ts
index def16a483b62e3f8eda63db0d798be5d83f3a713..a0eed7183420323bf52e221e54c7623cd5110109 100644
--- a/lib/manager/gradle/build-gradle.ts
+++ b/lib/manager/gradle/build-gradle.ts
@@ -123,6 +123,13 @@ function variableDefinitionFormatMatch(variable: string): RegExp {
   return new RegExp(`(${variable}\\s*=\\s*?["'])(.*)(["'])`);
 }
 
+function variableMapDefinitionFormatMatch(
+  variable: string,
+  version: string
+): RegExp {
+  return new RegExp(`(${variable}\\s*:\\s*?["'])(${version})(["'])`);
+}
+
 export function collectVersionVariables(
   dependencies: BuildDependency[],
   buildGradleContent: string
@@ -214,6 +221,36 @@ function updateGlobalVariables(
   return null;
 }
 
+function updateGlobalMapVariables(
+  dependency: GradleDependency,
+  buildGradleContent: string,
+  newVersion: string
+): string | null {
+  let variable = variables[`${dependency.group}:${dependency.name}`];
+  if (variable) {
+    while (variable && variable.split('.').length > 0) {
+      const regex = variableMapDefinitionFormatMatch(
+        variable,
+        dependency.version
+      );
+      const match = regex.exec(buildGradleContent);
+      if (match) {
+        return buildGradleContent.replace(
+          variableMapDefinitionFormatMatch(variable, dependency.version),
+          `$1${newVersion}$3`
+        );
+      }
+
+      // Remove first path segment of variable and try again
+      variable = variable
+        .split('.')
+        .splice(1)
+        .join('.');
+    }
+  }
+  return null;
+}
+
 function updateKotlinVariablesByExtra(
   dependency: GradleDependency,
   buildGradleContent: string,
@@ -258,6 +295,7 @@ export function updateGradleVersion(
       updateVersionLiterals,
       updateLocalVariables,
       updateGlobalVariables,
+      updateGlobalMapVariables,
       updatePropertyFileGlobalVariables,
       updateKotlinVariablesByExtra,
     ];