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

Spring Boot项目中Kotlin no-args插件搭配Maven不生效如何解决?

问题原因及解决方案

你遇到的报错与IDEA配置有关,同时存在一处注解配置错误,可按以下步骤排查解决:

1. 修正自定义@NoArg注解的保留策略

你当前使用的AnnotationRetention.SOURCE保留级别会让注解仅存在于源码阶段,编译期no-arg插件无法识别到该注解,自然不会为对应类生成无参构造。需将保留级别调整为编译期可识别的BINARY或RUNTIME,修改后的注解代码如下:

@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class NoArg

2. 同步IDEA Kotlin编译器配置

no-arg插件生成的无参构造是字节码层面的,默认情况下IDEA的Kotlin语法校验模块不知道这个构造的存在,就会抛出参数缺失的报错,可按以下路径配置:

  • 打开IDEA设置 → Build, Execution, Deployment → Compiler → Kotlin Compiler
  • 在Compiler plugins区域找到no-arg插件配置项,将你自定义的com.abc.xyz.NoArg全类名添加到注解列表中
  • 配置完成后刷新Maven项目,重启IDEA的Kotlin语法校验即可

3. 额外注意事项

no-arg插件生成的无参构造本身仅用于反射场景(比如JPA实例化、JSON反序列化等),并不支持在Kotlin代码中显式调用。如果你确实需要在Kotlin代码里直接调用无参构造,直接给主构造参数添加默认值即可,不需要额外使用no-arg插件:

class DemoClass(
  val type: String = "",
  val title: String = "",
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:03