You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle(Kotlin)项目中KSP无法找到mapstruct-processor的问题

解决KSP集成MapStruct的编译错误

问题根源

报错[ksp] No vendors were found in the processor class path.本质是KSP找不到可用的注解处理器,结合你的配置,问题出在两点:

  • MapStruct 1.6.3版本过旧,对Kotlin 2.1.x和KSP的兼容性不足
  • 依赖配置错误,未使用MapStruct专为Kotlin/KSP适配的处理器版本

修复步骤

1. 升级MapStruct版本

将MapStruct升级到1.6.5(当前稳定版,对新Kotlin版本兼容性更好),旧版1.6.3无法适配Kotlin 2.1的语法和编译逻辑。

2. 修正依赖配置

原配置中的mapstruct-processor是Java专用处理器,Kotlin项目需要替换为MapStruct的Kotlin专用处理器,同时新增Kotlin扩展依赖:

  • 新增implementation("org.mapstruct:mapstruct-kotlin:1.6.5"),提供Kotlin特有的类型支持
  • 将ksp("org.mapstruct:mapstruct-processor:1.6.3")替换为ksp("org.mapstruct:mapstruct-kotlin-processor:1.6.5")

3. 确认KSP版本匹配

你当前使用的Kotlin 2.1.0对应KSP版本2.1.0-1.0.29是正确的,无需修改。

修复后的关键配置片段

plugins {
    kotlin("jvm") version "2.1.0"
    // 其他插件保持原样
    id("com.google.devtools.ksp") version "2.1.0-1.0.29"
}

// 统一管理版本,方便后续维护
val mapstructVersion = "1.6.5"

dependencies {
    implementation("org.mapstruct:mapstruct:${mapstructVersion}")
    // 新增MapStruct Kotlin扩展依赖
    implementation("org.mapstruct:mapstruct-kotlin:${mapstructVersion}")
    // 替换为Kotlin专用KSP处理器
    ksp("org.mapstruct:mapstruct-kotlin-processor:${mapstructVersion}")
    
    // 其余Spring相关依赖保持不变
}

ksp {
    arg("mapstruct.defaultComponentModel", "spring")
}

验证操作

  • 先执行./gradlew clean清理旧编译产物
  • 再运行./gradlew kspKotlin,确认错误消失
  • 检查build/generated/ksp/main/kotlin目录,应该能看到MapStruct生成的实现类

内容的提问来源于stack exchange,提问作者Danil Gelimyanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:59:51