저는 몰랐습니다. build.gradle 파일이 레거시 였다는 것을. 찾아보니 안드로이드 4.0 이후에 Kotlin Script를 사용할 수 있게 되었습니다. 변경된지는 오래 되었는데, 이번에 빌드 할때 개인키를 따로 관리하기 위해 Kotlin-dsl 을 추가 하려다, 이것이 다름이 아니라 빌드 구성이 변경해야 한다는 것을 알게되었습니다.
공식 이전 가이드(Groovy to Kotlin)가 존재해서 이대로만 진행하면 됩니다. 간단하게는 작은 따옴표(')를 큰 따옴표(")로 변경하는 것입니다
공식 문서에서도 한번에 한파일씩 KTS로 변환 해야 한다고 합니다.
공식 이전 가이드를 참조하시되 간단히 문법을 소개하며 어떻게 다른지 확인해보겠습니다.
groovy 에서는 문자열 정의시 작은 따옴표를 사용하였는데, Kotlin 에서는 큰 따옴표가 필요합니다
Groovy에서는 다음 스니펫의 $project.rootDir과 같이 점선 표현식의 문자열 보간 유형에 $ 접두사를 사용할 수 있습니다.
myRootDirectory = "$project.rootDir/tools/proguard-rules-debug.pro"
Kotlin에서는 위 코드가 project.rootDir이 아닌 project에서 toString()을 호출합니다. 루트 디렉터리의 값을 가져오려면 전체 변수를 중괄호로 묶습니다.
myRootDirectory = "${project.rootDir}/tools/proguard-rules-debug.pro"
groovy 에서 적용했던 빌드 속성이 모두 setter 처럼 변경되었습니다. KTS에서 이 변수들이 모두 val 로 적용되었습니다
저의 경우에는 이렇게 build 되는 것이 신기하고 kotlin dsl을 사용할 수 있어서 활용성이 더 높아진 것 같아서 매우 좋습니다. 이 블로그가 제가 추가할 버전 관리 및 Hilt 를 추가 할 예정인데 도움이 될 것 같습니다!