kapt(koltin annotation process tool)를 사용하면 Kotlin 코드에서 자바 주석 프로세서를 사용할 수 있다.
plugins {
kotlin("kapt") version "1.9.23"
}
또는
plugins {
id("kotlin-kapt")
}
dependencies {
kapt("groupId:artifactId:version")
}
kapt를 사용하면 kotlin 코드에서 자바 주석 프로세서를 사용할 수 있다.
kotlin 파일에서 프로세서가 읽을 수 있는 자바 스텁이 생성되어 자바 주석 프로세서 사용이 지원된다.
이 작업은 비용이 많이 들어 빌드 속도에 영향을 준다.
kapt의 대안. KSP는 kotlin 코드를 직접 분석하기에 kapt 대비 최대 2배 빠르다.
kapt는 현재 유지보수 모드로 전환되었으므로 가능한 경우 KSP로 이전하는 것을 권장한다.
KSP 지원에 사용되는 라이브러리 확인
kapt에 사용되는 라이브러리에서 이미 KSP를 지원하는 지 확인해야 한다.
Dagger, Glide, Room, Moshi등에서 가능.
지원가능 라이브러리 목록
프로젝트에 KSP 플러그인 추가
2.1 최상위 build.gradle (또는 build.gradle.kts) 에서 KSP 플러그인 선언.
plugins {
id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false
}
plugins {
id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false
}
2.2 모듈 수준 build.gradle (또는 build.gradle.kts) 에서 KSP 사용 설정.
plugins {
id 'com.google.devtools.ksp'
}
plugins {
id("com.google.devtools.ksp")
}
dependencies {
kapt 'androidx.room:room-compiler:2.5.0' // 삭제
ksp 'androidx.room:room-compiler:2.5.0'
}
dependencies {
kapt("androidx.room:room-compiler:2.5.0") // 삭제
ksp("androidx.room:room-compiler:2.5.0")
}
3.1 주의사항
데이터 결합이 사용되는 모듈에서는 kapt를 삭제할 수 없다. (확인 필요)
kapt와 관련된 남아있는 구성도 삭제해야 한다.
// 삭제
kapt {
correctErrorTypes true
useBuildCache true
}
// 삭제
kapt {
correctErrorTypes = true
useBuildCache = true
}