【发布时间】:2018-07-18 10:13:51
【问题描述】:
我正在尝试让 Intellij 使用 gradle 识别我的属性。我已按照here 的步骤进行操作。所以这意味着我有一个带有一些属性的@ConfigurationProperties 注释类。
我添加了 spring 依赖来处理它们:
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
compileJava.dependsOn(processResources)
我添加了插件(我试过不使用插件,只是让它成为编译依赖,没有改变)
buildscript {
repositories {
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies { classpath 'io.spring.gradle:propdeps-plugin:0.0.9.RELEASE' }
}
apply plugin: 'propdeps'
apply plugin: 'propdeps-maven'
apply plugin: 'propdeps-idea'
当我运行构建时,我看到一个build/classes/java/main/META-INF/spring-configuration-metadata.json 文件是根据我的属性创建的。
当我尝试在application.yml 或application.properties 中使用该属性时,Intellij 说它无法解决它。
文档确实说它应该被称为 additional-spring-configuration-metadata.json 并且可能期望它被称为来处理它,但我没有看到以这种方式命名构建名称的方法,也没有将 Intellij 配置为期望的其他方式。
有没有人用 gradle 解决这个问题?或者这是一个错误。
编辑我创建了一个repo,其中包含两个项目来演示这一点。一个用于gradle,一个用于maven。我从 start.spring.io 创建了项目,基本上只是添加了属性配置。我还在这两种情况下都使用了直接编译依赖项,而不是可选的 / compileOnly。
我之前没有确认过,但是代码辅助确实适用于 maven,但不适用于 gradle。两者都在各自的构建文件夹中的META-INF 中创建spring-configuration-metadata.json。我不确定谁没有捡起它。
其他相关版本
Intellij: 2017.3.4
Springboot: 1.5.9
Gradle: 4.4.1
Java: 8.161
【问题讨论】:
-
你用的是社区版吗?
-
@AmitPhaltankar nope,使用完整版 Intellij
标签: spring-boot gradle intellij-idea properties spring-boot-configuration