본문 바로가기
개발 관련됨/개발 관련 유용한 정보함

gradle 기반의 여러 모듈에서 공통으로 쓰인 스크립트가 있다면?

by simplify-len 2022. 2. 6.

Photo by William Navarro on Unsplash

 

멀티 모듈 시스템에서 공통으로 쓰인 Gradle Script 가 있다면 어떻게 해야 될까?

RootProject  
 |  
 | - SubProjectA  
 |  -- build.gradle  
 | - SubProjectB  
 |  -- build.gradle  
 | - SubProjectC  
 |  -- build.gradle  
 | - build.gradle



여기서 `SubProjectA` , `SubProjectB`, `SubProjectC` 가 build.gradle 에서 공통으로 사용되는 내용이 있다고 가정하자.

약 모듈이 5개정도 만들어지면서 반복되어지는 스크립트를 발견되었고, 코드 복사/붙여넣기가 불편하다고 느꼈다.

어떻게 해야될까?

`base.gradle` 을 하나 만들어 전체 프로젝트에 공유하면 되지 않을까?

걱정되는 마음은 gradle 을 잘 알지 못하는 것이 첫번째. 설정을 외부화해야 한다. 라는 마음이 두번째였다.

RootProject  
 |  
 | - SubProjectA  
 |  -- build.gradle  
 | - SubProjectB  
 |  -- build.gradle  
 | - SubProjectC  
 |  -- build.gradle  
 | - build.gradle  
 | - base.gradle // Look!!


그래서 base.gradle 에 공통으로 사용되는 스크립트를 작성했고, 이를 전체 프로젝트에 적용되고자 했다.

// root project's build.gradle

allprojects {
    apply from: "$rootDir/base.gradle"
}



이렇게 해서 문제를 해결했다. 조금더 나아가 root project's build.gradle 에서 쓰인 apply from: xxx 는 무엇일까? 무슨 의미이지?

그리고 남은 숙제는 만약, 다른 프로젝트에서도 동일한 코드가 반복된다면 어떻게 할 것인가?

이를 dev-resource 서버에서 불러오게 할 수는 없을까?

 

먼저 다음 포스팅에서는 root project's build.gradle 에서 쓰인 apply from: xxx 에 대한 이해를 해보자!

[참고자료]

https://docs.gradle.org/current/userguide/plugins.html  

https://docs.gradle.org/current/dsl/org.gradle.api.Project.html  

댓글