⚠️ Ce dépôt est archivé. Envisagez de migrer votre configuration de traitement d’annotation vers KSP. ⚠️
NAPT
Qu’est-ce que c’est ?
Une alternative à KAPT qui évite la génération de stubs et fonctionne donc jusqu’à 50 % plus rapidement
Utilisation
JDK 9+ est requis pour exécuter cet ensemble spécifique d’outils
Une fois appliqué, vous ne pouvez plus référencer le code généré dans le code Kotlin, vous devez donc écrire des classes bridge Java
afin de référencer le code Java généré dans les sources Kotlin.
Par exemple, supposons que nous ayons le composant Dagger 2 Kotlin suivant :
`` Kotlin
@Component
interface Component {
@Component.Factory interface Factory {
fun create(): Component } }
Java class ComponentBridge {puis, afin de référencer le composant généré depuis le code Kotlin, nous devons écrire unbridgeJava qui ressemblerait à ceci :
static Component.Factory factory() { return DaggerComponent.factory(); } }
Gradle plugins { kotlin("kapt") }C’est tout, maintenant vous pouvez facilement référencer cebridgedepuis votre code Kotlin où vous le souhaitezExemple
Vous pouvez voir un exemple d’utilisation dans sample
Téléchargement
#### Ajouter le plugin
- Le plugin javac est distribué via Maven Central
- Le plugin Gradle est distribué via le Gradle Plugin Portal
Supprimez votre ancien
et le remplacer par Gradle
plugins {
id("com.sergei-lapin.napt") version("{latest-version}")
}
alors vous pouvez remplacer tout votre
Gradle
dependencies {
kapt("some dependency")
}
avec Gradle
dependencies {
annotationProcessor("some dependency")
}
C'est tout. Profitez d'une accélération d'environ 50 % du traitement de vos annotations.#### Classes NaptTrigger conflictuelles
Par défaut, le plugin Gradle génère NaptTrigger avec un package nommé selon le module afin d'éviter les conflits de noms qualifiés complets, mais, juste au cas où, le préfixe du package NaptTrigger peut être spécifié ainsi :
Gradle
napt {
naptTriggerPackagePrefix.set("com.slapin.napt")
}
Java package com.slapin.napt.sample; class NaptTrigger { }Supposons que nous sommes dans un module nommésample, cela donnera le fichierNaptTrigger.javasuivant :
Gradle napt { generateNaptTrigger.set(false) }#### Désactivation de la génération de NaptTriggerNaptTrigger.javaLa génération de
peut être désactivée (par exemple lorsque vous avez déjà des sources Java dans votre module) en définissant la propriété correspondante àfalse:
Gradle napt { forkJvmArgs.set(listOf("your_custom_arg")) }#### Fourniture d'arguments JVM personnalisés au compilateur Javacom.slapin.napt.JvmArgsStrongEncapsulationPour que napt fonctionne, la compilation Java s'exécute dans un processus forké avec des arguments définis par
. Ces arguments peuvent être étendus en définissant la propriété correspondante dans l'extensionnapt.
Gradle napt { additionalSourceSetsForTriggerGeneration.set(listOf("test")) } ``#### Génération de NaptTrigger dans des ensembles de sources supplémentairestestParfois, vous pourriez avoir besoin de déclencher le traitement des annotations dans des ensembles de sources supplémentaires (par exemple
). Dans ce cas, vous pouvez utiliser la propriété correspondante de l'extensionnapt:
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-12 ---