Gradle 구축 의존 설정 설명
본 고 는 Android Studio 에서 Gradle 구축 의존 설정 설명 과 의존 트 리 를 어떻게 보 는 지 등 을 소개 한다.
《 백 제 하 강 릉 》 조 사 는 백 제 채 운 간 에 천리 강 릉 이 하루 에 돌아온다.양안 의 원숭이 소리 가 울 리 지 않 아 가 벼 운 배 는 이미 만 중 산 을 넘 었 다.당, 이 백
의존 유형
1. 로 컬 모듈 라 이브 러 리 의존
compile project(':mylibrary')
2. 로 컬 바 이 너 리 의존
// libs jar
compile fileTree(dir: 'libs', include: ['*.jar'])
// jar
compile files('libs/foo.jar', 'libs/bar.jar')
3. 원 격 바 이 너 리 의존
compile 'com.example.android:app-magic:12.3'
//or
compile group: 'com.example.android', name: 'app-magic', version: '12.3'
원 격 의존 에 주의 하려 면 적당 한 원 격 창 고 를 추가 해 야 합 니 다.
라 이브 러 리 의존 설정
의존 영역 블록 에 서 는 서로 다른 의존 설정 라 이브 러 리 의존 을 사용 할 수 있 습 니 다.
메모: app module 에 서 는 AAR 의존 도 를 추가 할 수 없고 JAR 가방 만 추가 할 수 있 습 니 다.library module 에 서 는 AAR 과 JAR 의존 도 를 추가 할 수 있 습 니 다.
위의 설정 은 프로젝트 의 main 소스 집합 에 적용 되 며 모든 구축 변종 에 적 용 됩 니 다.지정 한 변종 소스 집합 구축 이나 테스트 소스 집합 성명 에 만 의존 하려 면 설정 이름과 변종 구축 또는 테스트 소스 집합 이름 을 접두사 로 사용 해 야 합 니 다.
예 를 들 어 'free' 제품 flavor 에 copile 을 추가 하고 싶 습 니 다.
dependencies {
freeCompile 'com.google.firebase:firebase-ads:9.8.0'
}
제품 flavor 와 구축 유형의 변종 에 의존 도 를 추가 하려 면 configurations 블록 에서 설정 이름 을 초기 화해 야 합 니 다.다음 예 는 apk 를 추가 하여 "freeDebug" 구축 변종 에 의존 하 는 것 을 설명 합 니 다.
configurations {
// Initializes a placeholder for the freeDebugApk dependency configuration.
freeDebugApk {}
}
dependencies {
freeDebugApk fileTree(dir: 'libs', include: ['*.jar'])
}
로 컬 테스트 와 장치 테스트 에 copile 의존 도 를 추가 합 니 다:
dependencies {
// Adds a remote binary dependency only for local tests.
testCompile 'junit:junit:4.12'
// Adds a remote binary dependency only for the instrumented test APK.
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
}
만약 당신 의 라 이브 러 리 모듈 이 여러 개의 변종 을 제공한다 면, 다른 라 이브 러 리 변종 을 다른 app 변종 으로 추가 할 수 있 습 니 다.
dependencies {
// Adds the 'debug' varaint of the library to the debug varaint of the app
debugCompile project(path: ':my-library-module', configuration: 'debug')
// Adds the 'release' varaint of the library to the release varaint of the app
releaseCompile project(path: ':my-library-module', configuration: 'release')
}
원 격 창고
기본적으로 Android Studio 는 프로젝트 루트 디 렉 터 리 에 있 는 build. gradle 파일 에서 JCenter 를 창고 위치 로 설명 합 니 다.
allprojects {
repositories {
jcenter()
}
}
mavenCentral, mavenLocal 또는 지정 한 Maven 창 고 를 추가 합 니 다:
allprojects {
repositories {
jcenter()
mavenCentral()
mavenLocal()
maven {
url "https://repo.example.com/maven2"
}
maven {
url "file://local/repo/"
}
ivy {
url "https://repo.example.com/ivy"
}
}
}
구 글 의 Maven 창고
다음 Android 라 이브 러 리 의 최신 버 전 은 Google Maven 창고 에서 가 져 올 수 있 습 니 다.
module 의 build. gradle 파일 에 google 의 Maven 창 고 를 추가 합 니 다:
repositories {
maven {
url 'https://maven.google.com'
// URL 'https://dl.google.com/dl/android/maven2/'
}
}
그리고 원 하 는 라 이브 러 리 를 dependencies 블록 에 추가 합 니 다:
dependencies {
compile 'com.android.support:appcompat-v7:26.0.0-beta2'
}
메모: 라 이브 러 리 의 오래된 버 전 을 추가 하고 의존 하 는 데 실 패 했 을 경우 Maven 창고 에서 오프라인 창고 (SDK Manager) 에서 만 가 져 올 수 없습니다.
의존 순서
dependencies 목록 의 의존 순 서 는 모든 우선 순 위 를 나타 내 고 첫 번 째 우선 순위 가 가장 높 은 다음 에 순서대로 배열 합 니 다.라 이브 러 리 의 의존 순 서 는 자원 통합 과 목록 파일 요소 의 통합 과 관계 가 있 습 니 다.
LIB 추가A 와 LIBB 의존, LIBA LIB 에 의존C 와 LIBD,LIB_B LIB 에 의존C. 그러면 의존 순 서 는:
1.LIB_A 2.LIB_D 3.LIB_B 4.LIB_C
이것 은 LIB 를 확보 할 것 이다.A 와 LIBB 는 모두 LIB 를 덮 을 수 있다C,LIB_D 비 LIBB 의 우선 순위 가 높 아 요. LIB 때문에.A 비 LIBB 우선 순위 가 높다.
의존 트 리 보기
어떤 직접적인 의존 은 그들 자신의 의존 이 있 을 수 있다.의존 전달 이 라 고 한다.우 리 는 작업 목록 에서 android Dependencies 를 찾 아 더 블 클릭 으로 실행 할 수 있 습 니 다.1. View > Tool Windows > Gradle 을 선택 하 십시오.2. AppName > Tasks > android 를 펼 치고 android Dependencies 를 두 번 클릭 합 니 다.3. 보고 서 를 보고 View > Tool Windows > Gradle Console 을 선택 하 십시오.
다음은 debug 를 위 한 변종 의존 트 리 예제 입 니 다. 로 컬 module 의존 과 원 격 의존 을 포함 합 니 다.
Executing tasks: [androidDependencies]
:app:androidDependencies
debug
/**
* Both the library module dependency and remote binary dependency are listed
* with their transitive dependencies.
*/
+--- MyApp:mylibrary:unspecified
| \--- com.android.support:appcompat-v7:25.4.0
| +--- com.android.support:animated-vector-drawable:25.4.0
| | \--- com.android.support:support-vector-drawable:25.4.0
| | \--- com.android.support:support-v4:25.4.0
| | \--- LOCAL: internal_impl-25.4.0.jar
| +--- com.android.support:support-v4:25.4.0
| | \--- LOCAL: internal_impl-25.4.0.jar
| \--- com.android.support:support-vector-drawable:25.4.0
| \--- com.android.support:support-v4:25.4.0
| \--- LOCAL: internal_impl-25.4.0.jar
\--- com.android.support:appcompat-v7:25.4.0
+--- com.android.support:animated-vector-drawable:25.4.0
| \--- com.android.support:support-vector-drawable:25.4.0
| \--- com.android.support:support-v4:25.4.0
| \--- LOCAL: internal_impl-25.4.0.jar
+--- com.android.support:support-v4:25.4.0
| \--- LOCAL: internal_impl-25.4.0.jar
\--- com.android.support:support-vector-drawable:25.4.0
\--- com.android.support:support-v4:25.4.0
\--- LOCAL: internal_impl-25.4.0.jar
...
레 퍼 런 스
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.