안드로이드 Gradle dependecies 관리하기

Harry The Great
해리의 유목코딩
3 min readOct 3, 2019

안드로이드 팀 단위로 개발함에 있어 다양한 프로젝트에서 다양한 플러그인을 사용하다 보면 동일한 버전을 맞추는 것이 상당히 중요해집니다.

def room_version = "2.2.0-rc01"  
implementation "androidx.room:room-runtime:$room_version"

위와같이 build.gradle 파일 내에 선언할 수 도 있지만 여러 모듈에서 중복되는 라이브러리를 사용할 경우 문제가 발생하기 때문에 이를 위한 별도의 파일을 만들게됩니다.

gradle 파일을 프로젝트 단위에서 생성한 후 위와 같이 버전을 위한 변수와 라이브러리의 패키지 네임을 별도로 작성합니다.

apply from: '../libraries.gradle'
........//생략
implementation libraries.gson
implementation libraries.okHttp
implementation libraries.okHttpLoggingInterceptor
implementation libraries.retrofit
implementation libraries.retrofitGsonConverter
implementation libraries.retrofitRxJavaAdapter

그 후 사용하려는 build.gradle 파일에서 위 코드와 같이 사용할 수 있습니다. 하지만 이 방법은 코드의 라인수가 줄어들지는 않습니다. 이럴 때 version 파일의 변수들을 배열 단위로 나누어 불러오면 조금 더 깔끔하게 사용할 수 있습니다.

예를 들어 retrofit을 사용할 땐 okhttp와 관련한 모듈 그리고 gson, rxadapter가 항상 한 묶음으로 쓰이게 됩니다. 이럴때 같이 사용하는 위처럼 사용하는 단위별로 배열을 선언합니다.

implementation networkDependencies.values()
implementation rxDependencies.values()

그다음 배열을 values 메서드를 이용하여 한번에 가져오면 gradle 파일을 조금 더 깔끔하게 정리할 수 있습니다. 또한 팀 단위로 혹은 프로젝트마다 항상 가져오게 되는 기본 모듈들도 위와 같은 방법으로 묶을 수 있습니다.

참조

--

--

Harry The Great
해리의 유목코딩

Android & IOS Developer 😀 미디움 이외에 스니펫이나 디버그노트로 활용하는 https://www.harrymikoshi.com/ 블로그도 운영하고있습니다.