Avoir un projet Kotlin avec l'installation Gradle:plugin KAPT de Kotlin pour gradle ne fonctionne pas pour voir la source personnalisée (JMH)
apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
dependencies {
kapt 'org.openjdk.jmh:jmh-generator-annprocess:1.18'
...
}
benchmarks Putting sous src/main/Kotlin travaux sans problèmes.
Mais quand j'ajoute une source définie pour JMH personnalisée:
sourceSets {
jmh {
compileClasspath += sourceSets.test.runtimeClasspath
runtimeClasspath += sourceSets.test.runtimeClasspath
}
}
et déplacer les repères de src/main/Kotlin-src/JMH/Kotlin, l'exécution des points de référence échoue avec:
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:122)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:256)
at org.openjdk.jmh.runner.Runner.run(Runner.java:206)
at org.openjdk.jmh.Main.main(Main.java:71)
On dirait que kaptJmhKotlin ne fait rien:
kaptGenerateStubsJmhKotlin UP-TO-DATE
Skipping task ':kaptJmhKotlin' as it has no source files and no previous output files.
:kaptJmhKotlin NO-SOURCE
:compileJmhKotlin
Une idée de comment résoudre le problème?
Il ne ressemble pas à un problème avec JMH ou gradle (j'ai utilisé JMH dans des projets Gradle-basés sur Java avec un ensemble de sources personnalisées pour les benchmarks jmh sans aucun problème). Ce n'est pas non plus un problème avec kotlin, en plaçant des benchmarks basés sur kotlin dans les worksets par défaut. Donc, ressemble à un bug dans kotlin-kapt et vous devriez le signaler à JetBrains. –