gradle kotlin dsl migration - 1.BuildSrc 폴더 생성하고 그 안에 build.gradle.kts 생성

2022. 4. 27. 14:30android

 

android의 multi module, modularization을 통한 이점으로 android clone coding에 차별화를 두고 싶었습니다.

시작은 좋았지만...모듈화를 할 때 build gradle 관리를 kts 를 이용해서 하는 걸 보고 migration 하다가 삽질한 게  최근 업데이트된 걸로 그나마 알려드리고 싶어 글을 적습니다.

 

그래서 kotlin dsl? kts? 그게 뭐야?? 먹는건가??

출처 : https://developer.android.com/studio/build/migrate-to-kts?hl=ko

DSL이란 Domain Specific Language의 약자로 특정 분야에 최적화된 프로그래밍 언어를 뜻한다.
상용구 코드를 최소화하기 위해 명령형 코드 대신 선언적 코드 형식을 따르고,
Kotlin DSL은 코틀린의 언어적인 특징으로 가독성이 좋고 간략한 코드를 사용하여 Gradle 스크립팅을 하는 것을 목적으로 하는 DSL이다.

검색해보면 아주 자세하게 여러 블로그들에서 장점과 단점을 소개해줍니다. 

간략하게 

 

장점 

1. 빌드 환경 세팅 시 관리하기가 용이하다.

2. 컴파일 시간이 짧다.

3. IDE를 제공한다.

etc

 

단점

1. 빌드 시간이 groovy보다 느리다.

2. java 8 이상 

etc

 

아무튼 간략히 이렇다~~

( 타 블로그 참고하시면 도움이 될거에요~) 

근데 문제는 여러 블로그들에 나와있는 실습 설명이 좀 부족하다고 느꼈습니다.

 

그래서 다른 사람들은 나처럼 고생 덜했으면 좋겠다 싶었습니다. 

 

지금부터 그럼 시작.

 

Android Studio Chipmunk version 으로 진행하였고, 

KTS 를 사용하시려면 Plugin 4.0 이상이어야 합니다. 

 

 


 

크게 2개의 과정이 있어요.

 

1. BuildSrc 폴더 생성하고 그 안에 build.gradle.kts 생성
2. 기존에 있던 Gradle Scripts 파일들을 kts 파일로 변경 후 적용하는 작업

 

먼저 1번부터 천천히 보겠습니다.

 

먼저 buildSrc 폴더를 만들어야 하는데 이때 두 가지의 방법이 있는 걸 알게 되었습니다.

 

1. 내가 직접 BuildSrc directory 추가 그 후 파일 추가 등 작업하기

2. module 생성해서 파일 추가 방법.

 

1번으로 하는 방식은 구글에 검색하면 상당히 많은 대부분의 블로그에서 사용하는 방식입니다.

봐도 엄청 많이 헤맸습니다...ㅠㅠ 

먼저 이렇게 하는 방법 알려드리고 

2번으로 넘어갈게요!

2번은 외국 사이트에서 보고 파악하고 적용 후에 알려드리는 것입니다.

 


1번 방법.

 

처음 프로젝트를 만들면 

이렇게 되어있는 걸 볼 수 있습니다. 

저기를 project 보기로 바꿔주세요.

이제  사진에 보시면 제가 Example 이라는 direc에 오른쪽 클릭한 게 보이시죠??

첨에 project 만드실 때 이름으로 되어있을 텐데 저 폴더에 마우스 오른쪽 클릭 -> New -> Directory 를 눌러 

이름을 BuildSrc 로 해서 생성해주세요.

 

 

 

그리고 생성한 BuildSrc 폴더에 build.gradle.kts를 사진처럼 생성해주세요.

 

 

그러면 그 안에 아래의 코드를 입력해주세요!!

plugins {
    `kotlin-dsl`
}
repositories {
    google()
    mavenCentral()
    gradlePluginPortal()
}

 

그리고 gradle sync now 해주시면

 

짜란~~~

이렇게 바뀌는 걸 볼 수 있습니다!!

 

 

 

여기에 이제 파일을 추가합니다.

 

BuildSrc 오른쪽 클릭 -> New -> Directory

 

여기에 main 이라고 치면 java, kotlin이 있어요

kotlin으로 할 거니까 kotlin 선택. 

 

거기에 이제 각 module 에서 사용할 AppConfiguration or Dependencies 를 적어주시면 됩니다.

( 아직 많이 남았습니다 )

이 폴더의 사용법은 다음 편 마지막에 있습니다. 

 


2번 방법.

 

메뉴 File -> New -> New Module

module 추가를 눌러주세요.

 

그러면 아래 사진처럼 모듈 이름을 정하고 생성할 수 있는데 

왼쪽 항목에서 Java or Kotlin libaray 를 누르시고 buildSrc 이름으로 만들어 줍니다!

 

이렇게 아래 사진처럼 왼쪽 project 안에 buildSrc 파일이 생성된 게 보이시나요???

근데 이런 오류가 나옵니다.

'buildSrc' cannot be used as a project name as it is a reserved name 

해결 방법은 간단합니다.

settings.gradle 에 들어가서 include ':buildSrc' 를 지워주면 바로 해결

 

 

 

그리고 buildSrc 폴더 안에 있는 build.gradle 파일을 build.gradle.kts로 바꿔주고

 

안에 이렇게 작성해줍니다.

그리고 sync now.

그러면 위에 1번에 과정이랑 똑같이 마무리된 것입니다.

plugins {
    `kotlin-dsl`
}
repositories {
    google()
    mavenCentral()
    gradlePluginPortal()
}

 

이제 전체 1번 과정을 마쳤습니다.

이제 2번으로 넘어가 기존의 gradle 파일들을 kts로 바꿔주는 작업을 다음 편에 하겠습니다.

 

아래에 다음편이 있습니다!

2022.05.24 - [android] - gradle kotlin dsl migration - 2. Gradle 에서 kts 로 migration

 

gradle kotlin dsl migration - 2. Gradle 에서 kts 로 migration

1편에 이어 두 번째 시간입니다. 여기서는 기존의 Gradle 파일을 바꾸는 작업을 하겠습니다. groovy에서 kotlin으로 변경할 때는 몇 가지 규칙이 있습니다. https://developer.android.com/studio/build/migrate-to-kts?

dev-musa.tistory.com