92

Is there any difference between google() and maven { url 'https://maven.google.com' } in build.gradle file and if there is any, what is it?

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
        // OR
        google()
    }
}
Amit Kumar
  • 1,428
  • 2
  • 12
  • 20
  • 5
    maven.google for android studio 2.3 and below versions. google() for android studio 3.0.0 and above. ( it's the same fuctionality) –  Sep 28 '17 at 11:04
  • 1
    See [here](https://stackoverflow.com/a/45854844/1370087) for more details. – Benjamin Sep 28 '17 at 11:16

3 Answers3

110

The google() repository is a shortcut to Google's maven repository. It was introduced in Gradle 4.x+. The actual repository URL used is `"https://dl.google.com/dl/android/maven2/" as specified here. https://maven.google.com actually points to the same repository.

However, if you are planning to use the google() shortcut, you need Gradle 4.x+, Android Studio 3.x+ and Gradle plugin for Android 3.x+.

Jayson Chacko
  • 2,388
  • 1
  • 11
  • 16
11

Small correction to the answer above. If you try to go to https://dl.google.com/dl/android/maven2/ it gives you a 404. The correct url to google maven repository is:

https://dl.google.com/dl/android/maven2/index.html or just https://maven.google.com

Here you can check all the supported libraries and the latest versions.

Sergio
  • 2,346
  • 2
  • 24
  • 28
0

When using gradle, you can mention multiple repositories which the build tool (gradle) uses to resolve dependencies mentioned in your project.

repositories {
    jcenter()
    maven { url 'https://maven.google.com' }
    google()
}

In the above scenario, you're mentioning 3 repositories which gradle can use to resolve dependencies—all of which are Maven repositories.

1. jcenter()

  • Means the JCenter Maven repository.
  • This is a shortcut available in later versions of gradle

2. { url 'https://maven.google.com' }

  • This means you are referring a Maven repo hosted at the URL which can be used by gradle to resolve the dependencies.
  • If you want, you can actually enter the URL for JCenter and this would be the same as mentioning jcenter() in the gradle file.

3. google()

  • This means the Google Maven repository
  • Similar to the notation maven(), this can be used in later versions of gradle only
Ruchira Randana
  • 4,021
  • 1
  • 27
  • 24