⚠️ 이 저장소는 보관 처리되었습니다. 주석 처리 설정을 KSP로 마이그레이션하는 것을 고려하세요. ⚠️
NAPT
이것이 무엇인가?
스텁 생성 단계를 건너뛰어 최대 50% 더 빠르게 실행되는 KAPT의 대안
사용법
이 특정 도구 세트를 실행하려면 JDK 9 이상이 필요합니다
적용 후에는 Kotlin 코드에서 생성된 코드를 더 이상 참조할 수 없으므로,
Kotlin 소스에서 Java 생성 코드를 참조하려면 Java bridge 클래스를 작성해야 합니다.
예를 들어, 다음과 같은 Kotlin Dagger 2 컴포넌트가 있다고 가정합니다:
`` Kotlin
@Component
interface Component {
@Component.Factory interface Factory {
fun create(): Component } }
Java class ComponentBridge {그런 다음, 생성된 컴포넌트를 Kotlin 코드에서 참조하기 위해서는 다음과 같이 생긴 Javabridge를 작성해야 합니다:
static Component.Factory factory() { return DaggerComponent.factory(); } }
Gradle plugins { kotlin("kapt") }이제 원하시는 곳 어디에서든 Kotlin 코드에서 이bridge를 쉽게 참조할 수 있습니다.예제
샘플에서 사용 예제를 확인할 수 있습니다.
다운로드
#### 플러그인 추가
- javac 플러그인은 Maven Central을 통해 배포됩니다.
- Gradle 플러그인은 Gradle Plugin Portal을 통해 배포됩니다.
기존의 것을 제거하세요.
그리고 그것을 교체합니다 Gradle
plugins {
id("com.sergei-lapin.napt") version("{latest-version}")
}
그런 다음 모든 것을 교체할 수 있습니다 Gradle
dependencies {
kapt("some dependency")
}
와 함께 Gradle
dependencies {
annotationProcessor("some dependency")
}
그게 다입니다. 주석 처리 속도가 약 50% 빨라진 것을 즐기세요.#### 충돌하는 NaptTrigger 클래스들
기본적으로 Gradle 플러그인은 모듈 이름을 따르는 패키지로 NaptTrigger를 생성하므로 FQ 이름이 충돌하지 않지만, 만약을 위해 NaptTrigger 패키지의 접두사를 다음과 같이 지정할 수 있습니다:
Gradle
napt {
naptTriggerPackagePrefix.set("com.slapin.napt")
}
Java package com.slapin.napt.sample; class NaptTrigger { }sample이라는 모듈에 있다고 가정하면, 다음과 같은NaptTrigger.java가 생성됩니다:
Gradle napt { generateNaptTrigger.set(false) }#### NaptTrigger 생성 비활성화NaptTrigger.java생성은 (예: 모듈에 이미 자바 소스가 있는 경우) 해당 속성을false로 설정하여 비활성화할 수 있습니다:
Gradle napt { forkJvmArgs.set(listOf("your_custom_arg")) }#### Java 컴파일러에 사용자 지정 JVM 인수 공급com.slapin.napt.JvmArgsStrongEncapsulationnapt가 작동하려면 Java 컴파일은
에 정의된 인수와 함께 분기된 프로세스에서 실행됩니다. 이 인수는napt확장에 해당 속성을 설정하여 확장할 수 있습니다.
Gradle napt { additionalSourceSetsForTriggerGeneration.set(listOf("test")) } ``#### 추가 소스 세트 내에서 NaptTrigger 생성하기test때때로 추가 소스 세트(예:
)에서 애노테이션 처리를 트리거해야 할 때가 있습니다. 이런 경우napt확장에 있는 해당 속성을 사용할 수 있습니다:
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-12 ---