diff --git a/lib/manager/gradle/build-gradle.js b/lib/manager/gradle/build-gradle.js
index 070d485e9db2107dce6e9e175f146b74d594a1c3..03fc6debc028fcf294980a09604d9f40dc109100 100644
--- a/lib/manager/gradle/build-gradle.js
+++ b/lib/manager/gradle/build-gradle.js
@@ -156,7 +156,7 @@ function updatePropertyFileGlobalVariables(
 // https://github.com/patrikerdes/gradle-use-latest-versions-plugin/blob/8cf9c3917b8b04ba41038923cab270d2adda3aa6/src/main/groovy/se/patrikerdes/DependencyUpdate.groovy#L27-L29
 function moduleStringVersionFormatMatch(dependency) {
   return new RegExp(
-    `(["']${dependency.group}:${dependency.name}:)[^$].*?((:.*?)?["'])`
+    `(["']${dependency.group}:${dependency.name}:)[^$].*?(([:@].*?)?["'])`
   );
 }
 
diff --git a/test/manager/gradle/build-gradle.spec.js b/test/manager/gradle/build-gradle.spec.js
index 3edb9236110769fcea2e569987e8a3301bca92e6..514973395a74eb9dcf2926f63da7249d5a2822f6 100644
--- a/test/manager/gradle/build-gradle.spec.js
+++ b/test/manager/gradle/build-gradle.spec.js
@@ -37,6 +37,23 @@ describe('lib/manager/gradle/updateGradleVersion', () => {
     );
   });
 
+  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 = gradle.updateGradleVersion(
+      gradleFile,
+      {
+        group: 'com.crashlytics.sdk.android',
+        name: 'crashlytics',
+        version: '2.8.0',
+      },
+      '2.10.1'
+    );
+    expect(updatedGradleFile).toEqual(
+      "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 = gradle.updateGradleVersion(