본문 바로가기

android/Project

안드로이드 build.gradle의 dependencies에서 사용하는 Keyword의 의미를 알아보자.

반응형

 

 

 

build.gradle 파일의 dependencies 섹션에서 사용할 수 있는 키워드는 안드로이드 빌드 시스템에서 의존성을 정의하는 데 사용됩니다. 이 키워드는 의존성의 유형, 버전, 소스 등을 지정합니다. 주요 키워드는 다음과 같습니다:

1. 의존성 유형

  • implementation: 모듈이 이 의존성을 사용하지만, 의존성이 이 모듈을 사용하는 다른 모듈에는 전파되지 않습니다.
  • api: 이 의존성이 이 모듈을 사용하는 모든 모듈에 전파됩니다.
  • compileOnly: 컴파일 시에만 필요하고, 런타임에는 포함되지 않습니다.
  • runtimeOnly: 런타임에만 필요하고, 컴파일 시에는 포함되지 않습니다.
  • testImplementation: 테스트 코드를 위해 사용되는 의존성입니다.
  • testCompile: 테스트 코드에 필요한 컴파일 의존성 (Gradle 5.0 이전).
  • testRuntime: 테스트 실행에 필요한 런타임 의존성 (Gradle 5.0 이전).
  • testCompileOnly: 테스트 컴파일 시에만 필요하고, 테스트 런타임에는 포함되지 않습니다.
  • androidTestImplementation: 안드로이드 테스트 코드에 사용되는 의존성입니다.
  • androidTestCompile: 안드로이드 테스트 코드에 필요한 컴파일 의존성 (Gradle 5.0 이전).
  • androidTestRuntime: 안드로이드 테스트 코드 실행에 필요한 런타임 의존성 (Gradle 5.0 이전).
  • androidTestCompileOnly: 안드로이드 테스트 컴파일 시에만 필요하고, 테스트 런타임에는 포함되지 않습니다.
  • annotationProcessor: 주석 처리기 의존성입니다.
  • kapt: Kotlin용 주석 처리기 의존성입니다.
  • apiElements: 모듈의 API 요소를 정의하는 의존성.
  • runtimeElements: 모듈의 런타임 요소를 정의하는 의존성.
  • compileClasspath: 컴파일 시 클래스 경로에 추가될 의존성.
  • runtimeClasspath: 런타임 시 클래스 경로에 추가될 의존성.

2. 의존성 소스

  • project: 프로젝트의 하위 모듈을 참조할 때 사용합니다.
  • file: 특정 파일을 의존성으로 추가할 때 사용합니다.
  • files: 여러 파일을 의존성으로 추가할 때 사용합니다.
  • fileTree: 디렉토리 내의 파일을 의존성으로 추가할 때 사용합니다.
  • classpath: 빌드 스크립트의 클래스 경로를 설정할 때 사용합니다.
  • platform: 의존성 버전을 정의하는 플랫폼을 지정합니다.
  • enforcedPlatform: 의존성 버전을 강제하는 플랫폼을 지정합니다.

3. 기타 키워드

  • exclude: 특정 의존성을 제외할 때 사용합니다.
  • force: 특정 버전의 의존성을 강제할 때 사용합니다.
  • transitive: 의존성의 전이성을 지정합니다.
  • changing: 변경될 수 있는 의존성(스냅샷 버전 등)을 지정할 때 사용합니다.
  • ext: 추가적인 확장을 정의할 때 사용합니다.

이 키워드들을 조합하여 안드로이드 빌드 시스템에서 다양한 의존성을 효율적으로 관리할 수 있습니다.

예시

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    kapt 'com.google.dagger:dagger-compiler:2.28'
    api project(':mylibrary')
    implementation files('libs/mylib.jar')
    runtimeOnly fileTree(dir: 'libs', include: ['*.jar'])
}

각각의 키워드와 그 사용 예제는 프로젝트 요구 사항에 따라 조정할 수 있습니다.

반응형

'android > Project' 카테고리의 다른 글

[ Android ] APK 분석하기  (0) 2024.07.31
Android 란? 2편  (0) 2018.10.03
Android 란? 1편  (0) 2018.10.03