kapt 대신에 ksp 사용해보기

Goodbye kapt, Hello KSP(Kotlin Symbol Processing)!

kapt는 지금까지 코틀린에서 어노테이션 프로세서로 많이 이용됐다. 쭉 kapt만을 써오다가, 올해(2021년) 2월달에 ksp라는 새로운 어노테이션 프로세서가 등장했다(첫 등장한 구글 블로그). ksp 공부를 미뤄오다가 오늘 간단히 공부해서 사용 방법을 기록하고자 한다.

왜 ksp를 사용해야 할까?

ksp 사용법

classpath("com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:${Versions.Essential.Ksp}")

ksp의 최신 버전은 ksp 깃허브 릴리즈에서 확인할 수 있다.

다음으로 플러그인을 추가해 준다. (모듈 단위 그레이들)

plugins {
...

id("com.google.devtools.ksp")
...
}

마지막으로 kapt에서 ksp로 변경해주면 된다.

ksp(Dependencies.Hilt.Compiler)

IDE에게 ksp로 생성된 파일들을 알려주고 싶을때가 있다. 그럴땐 srcDir를 추가해주면 된다.

kotlin {
sourceSets.main {
kotlin.srcDir("build/generated/ksp/main/kotlin")
}
}

마무리

https://github.com/google/ksp#supported-libraries

무조건 ksp를 적용하려고 하지 말고, 우선 지원하는 라이브러리인지 체크하고 적용해 보는걸 추천한다.

iOS 개발자를 꿈꾸는 토스팀 안드로이드 취준생 / github.com/jisungbin

iOS 개발자를 꿈꾸는 토스팀 안드로이드 취준생 / github.com/jisungbin