본문 바로가기
개발/Adroid

[android] 새로운 종속성 구성 사용

by KEI NETWORK 2019. 8. 31.
728x90

radle 3.4에서는 새로운 Java 라이브러리 플러그인 구성을 도입했습니다. 이 구성에서는 (모듈 간 종속성을 위해) 컴파일 및 런타임 클래스 경로에 대한 게시를 제어할 수 있습니다. Android 플러그인 3.0.0은 이와 같은 새로운 종속성 구성으로 이전하고 있습니다. 프로젝트를 마이그레이션하려면, 지원 중단된 구성 대신 새로운 구성을 사용하도록 종속성을 업데이트하기만 하면 됩니다(아래 표에 요약).

 

새 구성지원 중단된  구성동작
implementation compile 컴파일 타임에는 모듈에 종속성을 사용할 수 있으며, 런타임에만 모듈 소비자에게 종속성을 사용할 수 있습니다. 대규모의 다중 프로젝트 빌드에서 api/compile 대신 implementation을 사용하면 빌드 시스템이 재컴파일해야 하는 프로젝트의 크기가 줄어들기 때문에 빌드 시간이 상당히 개선될 수 있습니다. 대부분의 앱과 테스트 모듈은 이 구성을 사용해야 합니다.
api compile 컴파일 타임에는 모듈에 종속성을 사용할 수 있으며, 컴파일 타임과 런타임에는 모듈 소비자에게도 종속성을 사용할 수 있습니다. 이 구성은 compile(지금은 지원 중단됨)과 마찬가지로 동작하며 일반적으로 이 구성은 라이브러리 모듈에서만 사용해야 합니다. API를 별도 테스트 모듈에 노출시키지 않으려면, 앱 모듈이 implementation을 사용해야 합니다.
compileOnly provided 컴파일 타임에만 모듈에 종속성을 사용할 수 있으며, 컴파일 타임이나 런타임에는 소비자에게 종속성을 사용할 수 없습니다. 이 구성은 provided와 마찬가지로 동작합니다(지금은 지원 중단됨).
runtimeOnly apk 런타임에만 모듈과 모듈 소비자에게 종속성을 사용할 수 있습니다. 이 구성은 apk와 마찬가지로 동작합니다(지금은 지원 중단됨).

안정된 최신 버전의 Android 플러그인과 마찬가지로 위의 구성은 버전별 또는 빌드 유형별 종속성에 사용될 수 있습니다. 예를 들어, api를 사용하여 모든 변형에 종속성을 사용하도록 만들거나,redApi를 사용하여 모듈의 red 변형에만 종속성을 사용하도록 만들 수 있습니다.

참고: compile, provided  apk은 현재도 여전히 사용할 수 있습니다. 그러나 Android 플러그인의 향후 주요 릴리스에서는 사라질 것입니다.

728x90

댓글