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(