Diffy
Diffy

Reputation: 2359

Structure of build.gradle

In the following simple build.gradle file, i have some basic questions.

1.In repositories, when i specify mavenCentral(), is it the repository where all the libraries that i specify like compile 'com.android.support:support-v4:21.0.2'will be searched? Is there anything else for this apart from mavenCentral()? And what is the url required for after that(oss.sonatype..)?

2.What are the items that should be specified in classpath? Why cant the classpath items be specified like we specify the support libraries?

3.And for using a third party library, i had to specify an Amazon AWS URL at the bottom in allProjects() section. Why is this URL required?

 buildscript {
        repositories {
            mavenCentral()

        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots/"
        }


    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'com.jimdo.gradle:gradle-apt-plugin:0.2-SNAPSHOT'

    }
}

allprojects {
    repositories {
        mavenCentral()
        maven {
            url "https://s3-ap-southeast-1.amazonaws.com/abc-release/abc/"
        }
    }
}

Upvotes: 1

Views: 169

Answers (2)

Larry Schiefer
Larry Schiefer

Reputation: 15775

1.In repositories, when i specify mavenCentral(), is it the repository where all the libraries

No, you also have an implicit local Maven repository (usually at ~/.m2) which can also be searched for locally installed packages. The newer Android Studio builds use jcentral rather than Maven central, but the concept is the same: a central repository for packages.

2.What are the items that should be specified in classpath? Why cant the classpath items be specified like we specify the support libraries?

These are build tool (i.e. gradle) dependencies. Your app's dependencies are outlined in the app module's specific build.gradle file.

3.And for using a third party library, i had to specify an Amazon AWS URL at the bottom in allProjects() section. Why is this URL required?

Because their libraries are not in Maven central. So you're effectively pointing Maven to an outside repository you wish to use for your app and any of its libraries.

Upvotes: 2

Sergey Glotov
Sergey Glotov

Reputation: 20336

1.In repositories, when i specify mavenCentral(), is it the repository where all the libraries that i specify like compile 'com.android.support:support-v4:21.0.2'will be searched?

Yes, but only if it isn't in buildscript block. Everything inside buildscript is used by build system – gradle and possibly some libraries for it.

allprojects.repositories is place where you declare repositories where libraries used by your application will be searched.

Upvotes: 1

Related Questions