반응형
Gradle 8.0 이상에서는 이전 버전과 비교해 여러 사항들이 변경되었으며, 특히 안드로이드 빌드 설정에 직접적인 영향을 미치는 요소들이 많다. 몇 가지 주요 변경 사항은 다음과 같다.
1. namespace 선언 필수
- 변경 사항: Gradle 8.0과 Android Gradle Plugin(AGP) 7.3.0 이상에서는 AndroidManifest.xml에서 패키지 이름을 설정하는 대신 build.gradle 파일에서 namespace 속성을 명시적으로 선언해야 합니다.
- 이유: 이 변경 사항은 Android Gradle Plugin의 개선된 네임스페이스 지원에 따른 것으로, 더 나은 빌드 속도와 코드 분리 지원을 위해 도입되었습니다.
- 예시:
android {
namespace 'com.sample.test'
}
2. targetSdkVersion이 없어짐
- 변경 사항: targetSdkVersion은 더 이상 Gradle 파일에서 필수적으로 선언되지 않으며, Google Play가 자동으로 최신 버전으로 간주합니다. 하지만 여전히 하위 호환성을 유지하고 싶다면 명시적으로 설정하는 것이 좋습니다.
- 이유: 이는 구글이 최신 플랫폼 기능을 활용하도록 유도하기 위한 변화이며, 최신 SDK 버전에 대한 자동 지원을 강화합니다.
- 예시:
android {
compileSdkVersion 34
defaultConfig {
minSdkVersion 21
// targetSdkVersion 없어짐
}
}
3. 종속성 관리 변화
- 변경 사항: Gradle 8.0에서는 jcenter() 지원이 완전히 중단되었습니다. 따라서 mavenCentral() 또는 google()로 대체해야 합니다.
- 이유: JFrog에서 JCenter 저장소를 더 이상 업데이트하지 않기 때문에 더 이상 사용할 수 없습니다.
- 예시:
repositories {
google()
mavenCentral()
}
4. Java Toolchain 강화
- 변경 사항: Gradle 8.0에서는 Java toolchain을 보다 엄격하게 관리하며, 잘못된 toolchain 설정이 더 이상 허용되지 않습니다. 또한 자동으로 toolchain을 다운로드할 때 명시적으로 저장소(Repository)를 설정하지 않으면 오류가 발생합니다.
- 이유: 이는 빌드 환경에서 더 나은 일관성과 신뢰성을 제공하기 위해 도입되었습니다.
- 예시:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(11)
}
}
5. 테스트 프레임워크 설정 변경
- 변경 사항: 테스트 태스크에서 테스트 프레임워크를 설정한 후 추가적인 옵션을 변경하는 것이 더 이상 허용되지 않습니다. 테스트 프레임워크는 먼저 설정한 후 옵션을 설정해야 합니다.
- 이유: 테스트 프레임워크 설정 후 옵션을 변경하는 것이 이전에는 설정을 덮어쓰는 문제가 있었기 때문에 이러한 변경이 적용되었습니다.
- 예시:
test {
useJUnitPlatform {
includeTags("unit")
}
options {
// 테스트 옵션
}
}
반응형
'개발 > Android' 카테고리의 다른 글
AGP 8.0 이상에서 주목해야 할 주요 변경 사항 (0) | 2024.10.10 |
---|---|
Android 13(QPR) 및 14(API 34)에서 적용된 새로운 보안 정책 및 기능 변경과 주의 사항 (0) | 2024.10.04 |
AAR 라이브러리 사용 (0) | 2024.06.05 |
모듈 유형 변경(application -> library) (0) | 2024.06.05 |
OpenCV 설정 (0) | 2024.05.30 |