android studio 에서 module link 하기

모듈 하나가 있고, 여러 프로젝트에서 사용하는 거라 링크로 연결해서 사용하고 싶다.

폴더 구조는 아래와 같다. 만약 프로젝트와 모듈이 한 폴더에 들어있지 않으면 여러 명이 작업할 때 고생이 많아지니 어지간하면 한 폴더에 두는게 좋다.

MyProjects
 ㄴ ModuleA
  ㄴ myModuleA
 ㄴ ProjectA
  ㄴ app
 ㄴ ProjectB
  ㄴ app

ProjectA, ProjectB는 ModuleA를 링크해서 사용하고 싶은데, 안드로이드 스튜디오의 New – Import Module 을 하면 프로젝트 폴더로 모듈의 소스가 넘어오기 때문에 원하는 형태로 되지 않는다.

만약 폴더 구조가 저렇게 됐다면 settings.gradle, app/build.gradle을 수동으로 수정해주면 된다.

# ProjectA/settings.gradle
rootProject.name = "ProjectA"
include ':app', ':myModule'
project(':myModule').projectDir = new File('../ModuleA/myModuleA')
# ProjectA/app/build.gradle
dependencies {
  implementation project(':myModuleA')
}
# ProjectB/settings.gradle
rootProject.name = "ProjectB"
include ':app', ':myModule'
project(':myModule').projectDir = new File('../ModuleA/myModuleA')
# ProjectB/app/build.gradle
dependencies {
  implementation project(':myModuleA')
}