Gradle 의존 충돌 해결 방식 에 대한 자세 한 설명
안 드 로 이 드 개발 에 서 는 버 전 의존 에 관 한 문 제 를 겪 고 있다 고 믿 는 학생 들 이 적지 않다.안 드 로 이 드 스튜디오 는 일반적으로 자동 으로 무 거 운 것 을 도와 주지 만,때때로 무 거 운 것 을 실패 하면 수 동 으로 처리 해 야 한다.여기 서 자신 이 장기 적 으로 만난 각종 문제 의 해결 방식 을 정리 하 다.
효 과 를 보기 편 하도록 gradle 솔 루 션 을 버 전 충돌 시 자동 으로 실패 하 는 것 으로 바 꾸 었 습 니 다.다음 과 같 습 니 다.
configurations.all {
resolutionStrategy {
failOnVersionConflict()
}
}
우리 가 서로 다른 버 전의 rxjava 에 동시에 의존 할 때 컴 파일 은 다음 과 같이 오 류 를 보고 합 니 다.해결 방안
1.통합 버 전 관리
하나의 procject 아래 에 여러 개의 module 이나 library 가 있 을 때 통 일 된 버 전 관리 방식 을 사용 하기에 적합 합 니 다.
config.gradle 만 들 기
procject 디 렉 터 리 에 config.gradle 파일 을 만 들 려 면 통일 적 으로 관리 해 야 합 니 다.다음 과 같 습 니 다.
ext {
//Dependencies
supportLibraryVersion = '25.3.1'
okHttpVersion = '3.8.0'
domainTestDependencies = [
appcompatv7: "com.android.support:appcompat-v7:${supportLibraryVersion}",
okHttp : "com.squareup.okhttp3:okhttp:${okHttpVersion}"
]
}
procject 의 build.gradle 시작 에 가입 합 니 다.
apply from: "config.gradle"
module 또는 library 참조 버 전
implementation rootProject.ext.dependencies["appcompatv7"]
implementation rootProject.ext.dependencies["okHttp"]
2.충돌 의존 제거우리 가 인터넷 의 일부 오픈 소스 라 이브 러 리 를 사용 하고 자신의 프로젝트 에 도 서로 다른 버 전 라 이브 러 리 를 사 용 했 을 때 우 리 는 의존 하 는 오픈 소스 라 이브 러 리 에서 exclude 로 중복 을 제거 할 수 있다.
만약 우리 가 의존 하 는 라 이브 러 리 가 com.carlos.test:Test:1.0.0 이 라면 rxjava 와 우리 module 이 서로 다른 버 전 을 사용 했다 면 우 리 는 이렇게 할 수 있 습 니 다.
implementation ('com.carlos.test:Test:1.0.0') {
exclude group: "io.reactivex.rxjava2",module: "rxjava"
// exclude group: "io.reactivex.rxjava2:rxjava:2.1.11"
}
implementation 'io.reactivex.rxjava2:rxjava:2.1.13'
group 은 라 이브 러 리 의 groupId 이 고,module 는 artifactId 입 니 다.우 리 는 또한 주석 중의 방법 으로 구체 적 인 버 전 을 직접 지정 할 수 있다.3.특정 버 전 의존 강제 사용
저희 도 직접 전략 에서 어떤 버 전 의존 을 강제 할 수 있 습 니 다.
configurations.all {
resolutionStrategy {
force 'io.reactivex.rxjava2:rxjava:2.1.13'
}
}
이렇게 하면 rxjava 에 2.1.13 버 전 을 강제로 사용 하도록 하 는 것 이다.총결산
세 가지 방식 은 각각 다른 장면 이 있 는데 자신 에 게 맞 는 것 이 가장 좋다.만약 에 누락 되 거나 잘못된 것 이 있 으 면 지적 을 환영한다.서로 교류 하고 공 부 했 으 면 좋 겠 어 요.많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin ReflectionReflection is a set of language and library features that allows for introspecting the structure of your own program at ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.