无法解析配置属性“。。。我可以通过@value注解或自动连线环境访问我的属性。但我自己定义的所有属性都得到了这个警告。我应该怎么做才能让我的想法认识到这些而不打扰我?
xkrw2x1b1#
我有同样的问题,加上没有显示自动完成发现,它与intellij终极版,而不是社区版的作品。链接需要采取的两个有用步骤是:添加maven依赖项:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
刷新maven以下载依赖项。中的属性的确切名称 target/classes/META-INF/spring-configuration-metadata.js 以防止错误。确保您的配置类被注解为 @ConfigurationProperties("name-here") 你已经通过 @EnableConfigurationProperties(NameOfTheConfigClass.class)
target/classes/META-INF/spring-configuration-metadata.js
@ConfigurationProperties("name-here")
@EnableConfigurationProperties(NameOfTheConfigClass.class)
lmvvr0a82#
在intellij设置中关闭检查。
ix0qys7i3#
为了让intellij idea知道您的spring引导属性,您可以在项目中定义spring引导配置元数据。
如果你能用 @ConfigurationProperties -对于您的属性,您可以将spring引导配置注解处理器添加到您的类路径中,intellij idea将在中为您生成配置元数据 target 或者 out :Maven:
@ConfigurationProperties
target
out
grad尔:
implementation 'org.springframework.boot:spring-boot-configuration-processor'
自己创建配置元数据文件 src/main/resources/META-INF/spring-configuration-metadata.json :内容:
src/main/resources/META-INF/spring-configuration-metadata.json
{ "properties": [ { "name": "myapp.someprop", "type": "java.lang.String" }, { "name": "myapp.someintprop", "type": "java.lang.Integer" } ] }
在构建系统(maven/gradle)的intellijidea工具窗口中,单击“刷新”按钮。选择 Build > Rebuild Project 从菜单上。如果警告仍然出现,可以尝试重新启动ide。选择 File > Invalidate Caches / Restart 点击 Invalidate and Restart .
Build > Rebuild Project
File > Invalidate Caches / Restart
Invalidate and Restart
wgxvkvu94#
请为kotlin项目的gradle kotlin脚本使用以下内容:
plugins { kotlin("jvm") kotlin("kapt") } /* ... */ dependencies { val configurationProcessor ="org.springframework.boot:spring-boot-configuration-processor:${BuildConstants.springBootVersion}" kapt(configurationProcessor) // for jar kaptTest(configurationProcessor) // for jar annotationProcessor(configurationProcessor) // for IntelliJ Idea } /* ... */ kapt { annotationProcessor("org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor") } /* ... */ tasks { withType<KotlinCompile> { dependsOn(processResources) } }
kotlinkapt需要处理元数据和内存。从spring官方文档中,spring引导配置处理器生成带有属性元数据的特殊json文件。因此,分配 jar 通过属性语法突出显示,您需要:让gradle生成这个文件更新任务序列以在 jar 使用 Package dependsOn (不确定我上面的代码是否是最有效的解决方案,但是问题已经解决了)然而intellij idea与 annotationProcessor gradle配置(不幸的是,我没有确切的答案,为什么它需要确切的答案)。因此,您需要将相同的处理器添加到 annotationProcessor 配置也一样。
jar
dependsOn
annotationProcessor
6bc51xsx5#
基于gradle的解决方法是:
afterEvaluate { val kaptKotlinTasks = tasks.named("kaptKotlin") { doLast { val kaptKotlin = this tasks.named<ProcessResources>("processResources") { from(kaptKotlin.outputs) { include("META-INF/spring-configuration-metadata.json") } } } } tasks.named("processResources") { this.dependsOn(kaptKotlinTasks) } }
在运行构建(或只是 processResources 任务)在intellij gradle面板中,有关属性的警告应该消失。不理想,但intellij不支持kapt也不理想:-/
processResources
5条答案
按热度按时间xkrw2x1b1#
我有同样的问题,加上没有显示自动完成发现,它与intellij终极版,而不是社区版的作品。链接
需要采取的两个有用步骤是:
添加maven依赖项:
刷新maven以下载依赖项。
中的属性的确切名称
target/classes/META-INF/spring-configuration-metadata.js
以防止错误。确保您的配置类被注解为
@ConfigurationProperties("name-here")
你已经通过@EnableConfigurationProperties(NameOfTheConfigClass.class)
lmvvr0a82#
在intellij设置中关闭检查。
ix0qys7i3#
为了让intellij idea知道您的spring引导属性,您可以在项目中定义spring引导配置元数据。
方案1:
如果你能用
@ConfigurationProperties
-对于您的属性,您可以将spring引导配置注解处理器添加到您的类路径中,intellij idea将在中为您生成配置元数据target
或者out
:Maven:
grad尔:
方案2:
自己创建配置元数据文件
src/main/resources/META-INF/spring-configuration-metadata.json
:内容:
选项1和2:
在构建系统(maven/gradle)的intellijidea工具窗口中,单击“刷新”按钮。
选择
Build > Rebuild Project
从菜单上。如果警告仍然出现,可以尝试重新启动ide。选择
File > Invalidate Caches / Restart
点击Invalidate and Restart
.wgxvkvu94#
请为kotlin项目的gradle kotlin脚本使用以下内容:
kotlinkapt需要处理元数据和内存。
从spring官方文档中,spring引导配置处理器生成带有属性元数据的特殊json文件。
因此,分配
jar
通过属性语法突出显示,您需要:让gradle生成这个文件
更新任务序列以在
jar
使用 PackagedependsOn
(不确定我上面的代码是否是最有效的解决方案,但是问题已经解决了)然而intellij idea与
annotationProcessor
gradle配置(不幸的是,我没有确切的答案,为什么它需要确切的答案)。因此,您需要将相同的处理器添加到annotationProcessor
配置也一样。6bc51xsx5#
基于gradle的解决方法是:
在运行构建(或只是
processResources
任务)在intellij gradle面板中,有关属性的警告应该消失。不理想,但intellij不支持kapt也不理想:-/