问题描述
@ConfigurationProperties
类可以从配置文件中加载变量,IDEA已经自动支持对本项目中的这些类在配置文件中提供自动完成提示
如果你自己写了一个父项目,其中有一些@ConfigurationProperties
类
那么在依赖这个父项目的子项目中,它们虽然可以正确加载,但是配置文件中IDEA会警告你这些配置找不到匹配,且没有自动补全功能
这需要一个文件spring-configuration-metadata.json
的支持,它由spring-boot-configuration-processor
在编译期自动生成,但是kotlin
中直接导入这个依赖时它并不会正确运行
解决方案
加入插件
plugins {
id "org.jetbrains.kotlin.kapt" version "1.9.23"
}
加入依赖
dependencies {
kapt "org.springframework.boot:spring-boot-configuration-processor"
}
如果父项目是多模块项目,则每个含有@ConfigurationProperties
类子项目也都需要加入
参考资料
https://kotlinlang.org/docs/kapt.html#try-kotlin-k2-compiler
https://stackoverflow.com/questions/37858833/spring-configuration-metadata-json-file-is-not-generated-in-intellij-idea-for-ko