원격 저장소 관리

종속 항목이 로컬 라이브러리나 파일 트리가 아닌 경우 Gradle은 settings.gradle 파일의 dependencyResolutionManagement { repositories {...} } 블록에서 지정된 온라인 저장소에서 파일을 찾습니다. 각 저장소를 나열하는 순서에 따라 Gradle이 각 프로젝트 종속 항목의 저장소를 검색하는 순서가 결정됩니다. 예를 들어 종속 항목을 저장소 A와 B에서 다운로드할 수 있고 A를 먼저 나열한 경우 Gradle은 저장소 A에서 종속 항목을 다운로드합니다.

기본적으로 새 Android 스튜디오 프로젝트에서 아래와 같이 Google Maven 저장소를 지정하고 Maven 중앙 저장소를 프로젝트의 settings.gradle 파일의 저장소 위치로 지정합니다.

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

로컬 저장소에서 항목을 가져오려면 mavenLocal()을 사용합니다.

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

또는 다음과 같이 특정 Maven이나 Ivy 저장소를 선언할 수 있습니다.

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven(url = "https://repo.example.com/maven2")
        maven(url = "file://local/repo/")
        ivy(url = "https://repo.example.com/ivy")
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven {
            url 'https://repo.example.com/maven2'
        }
        maven {
            url 'file://local/repo/'
        }
        ivy {
            url 'https://repo.example.com/ivy'
        }
    }
}

자세한 내용은 Gradle 저장소 가이드를 참고하세요.

Google Maven 저장소

다음 Android 라이브러리의 가장 최근 버전은 Google Maven 저장소에서 찾을 수 있습니다.

Google Maven 저장소 색인에서 사용할 수 있는 모든 아티팩트를 볼 수 있습니다(프로그래매틱 액세스는 아래를 참조).

이러한 라이브러리 중 하나를 빌드에 추가하려면 최상위 수준 build.gradle.kts 파일에 Google Maven 저장소를 포함하세요.

Kotlin


dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url = "https://maven.google.com"
        // }
        // An alternative URL is "https://dl.google.com/dl/android/maven2/".
    }
}

Groovy


dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url 'https://maven.google.com'
        // }
        // An alternative URL is 'https://dl.google.com/dl/android/maven2/'.
    }
}

그런 다음 원하는 라이브러리를 모듈의 dependencies 블록에 추가합니다. 예를 들어 appcompat 라이브러리는 다음과 같습니다.

Kotlin


dependencies {
    implementation("com.android.support:appcompat-v7:28.0.0")
}

Groovy


dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.0'
}

그러나 위 라이브러리의 이전 버전을 사용하려고 하고 종속 항목에 오류가 발생하면 그 버전은 Maven 저장소에서 사용할 수 없으며 대신 오프라인 저장소에서 라이브러리를 가져와야 합니다.

프로그래매틱 액세스

Google Maven 아티팩트에 프로그래매틱 방식으로 액세스하려면 maven.google.com/master-index.xml에서 아티팩트 그룹의 XML 목록을 가져옵니다. 그러면 다음 경로에 모든 그룹의 라이브러리 이름과 버전이 표시됩니다.

maven.google.com/group_path/group-index.xml

예를 들어 android.arch.lifecycle 그룹의 라이브러리는 maven.google.com/android/arch/lifecycle/group-index.xml에 나열됩니다.

또한 다음 경로에서 POM 및 JAR 파일을 다운로드할 수 있습니다.

maven.google.com/group_path/library/version/library-version.ext

예: maven.google.com/android/arch/lifecycle/compiler/1.0.0/compiler-1. 0.0.pom.

SDK 관리자의 오프라인 저장소

Google Maven 저장소에 없는 라이브러리(주로 이전 버전의 라이브러리)의 경우 SDK Manager에서 오프라인 Google 저장소 패키지를 다운로드해야 합니다.

그런 다음 평소와 같이 이러한 라이브러리를 dependencies 블록에 추가할 수 있습니다.

오프라인 라이브러리는 android_sdk/extras/에 저장됩니다.