使用JMH Gradle插件时提示“No matching benchmarks”问题求助
解决JMH插件找不到基准测试的问题
你的问题出在JMH Gradle插件默认只扫描src/jmh/java目录下的基准测试类,而你带@Benchmark注解的类放在了src/main/java里,所以插件识别不到。
给你两个可行的解决办法:
迁移基准测试类:把带
@Benchmark的类移到src/jmh/java目录下(目录不存在就手动创建),这是插件的默认约定,不用改配置就能正常识别。修改配置扫描main目录:如果不想移动类,在
build.gradle.kts里添加sourceSet配置,让JMH插件包含main目录的代码:plugins { id("java") id("me.champeau.jmh") version "0.7.0" } sourceSets { named("jmh") { java.srcDirs("src/main/java") } } jmh { includes.set(listOf(".*")) } dependencies { implementation("org.openjdk.jmh:jmh-core:1.36") annotationProcessor("org.openjdk.jmh:jmh-generator-annprocess:1.36") }
另外补充个优化点:jmh-generator-annprocess依赖改用annotationProcessor而非implementation,这样注解处理器仅在编译阶段生效,避免不必要的依赖传递。
内容的提问来源于stack exchange,提问作者synapse
相关产品推荐
相关产品推荐

