-
안드로이드 개발을 하다보면 자주 사용하는 기능들을 개인 라이브러리로 따로 모아놓고 여러 프로젝트에 동일하게 사용하고 싶을 때가 있습니다.
Git Submodule 을 사용하면 여러 프로젝트에서 동일한 Git 라이브러리를 사용하고, 변경사항도 서로 공유할 수 있습니다.
다음과 같이 프로젝트와 라이브러리 레포지토리가 각각 존재할 때, mango-library 를 mango-app 에 서브모듈로 추가하는 방법을 알아보겠습니다.
프로젝트 레포지토리 : {username}/mango-app
라이브러리 레포지토리 : {username}/mango-library
1. 서브모듈 추가하기
프로젝트 터미널에서 다음 명령어를 통해 mango-library 를 해당 프로젝트의 sub-module로 추가합니다.
$ git submodule add https://github.com/{username}/mango-library.git
서브모듈 추가가 완료되면 다음과 같이 라이브러리 폴더와 .gitmodules 파일이 추가됩니다.
(아직은 모듈이 정상적으로 추가되기 전이기 때문에 Android 가 아닌 Project 뷰에서만 확인됩니다.)
안드로이드 스튜디오 오른쪽 하단의 Git Branch 창에도 mango-library repository 가 추가된 것을 확인할 수 있습니다.
2. Gradle 수정하기
이제 내려받은 라이브러리 파일을 프로젝트에 모듈로 추가해야합니다.
settings.gradle 파일에 다음 내용을 추가합니다.
include ':mango-library'
app 레벨의 build.gradle 파일에 다음 내용을 추가합니다.
dependencies { implementation project(":mango-library") // mango-library 추가 ... }
3. Gradle Sync
gradle sync 가 완료되면 Android 뷰에서 모듈이 추가된 것을 확인할 수 있습니다.
이제 라이브러리와 프로젝트를 동시에 개발하면서 버전관리는 따로 할 수 있습니다. 또한, 다른 프로젝트에서도 이와 같은 방법으로 서브모듈을 추가하면 라이브러리의 변경사항을 서로 공유 할 수 있습니다. 다만, 여러 프로젝트에서 동시에 수정이 일어나서 충돌이 날 것을 대비하여 프로젝트별로 별도의 브랜치를 생성하여 관리하면 더 좋을 것 같습니다.
참고 블로그
'안드로이드 개발' 카테고리의 다른 글
리사이클러뷰 해부하기(2) (0) 2021.03.06 리사이클러뷰 해부하기(1) (0) 2021.03.05