使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”
Posted
技术标签:
【中文标题】使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”【英文标题】:"Re-run SpringBoot Configuration Annotation Processor" in project with Groovy, IntelliJ and Gradle 【发布时间】:2017-05-21 07:06:54 【问题描述】:我正在使用 IntelliJ 15.0.6、SpringBoot 1.4.3.RELEASE、Gradle 2.14 和 Groovy 2.3.11。
我从 IntelliJ 收到以下消息:
我尝试关注***、the official documentation 和JavaCodeGeeks,但没有成功。
这是我的配置文件:
@Configuration
@ConfigurationProperties(prefix = "configuracoes")
class GeralConfiguration
def proxyEndereco
def proxyPorta
以及我的 application.yaml 文件的相关部分:
configuracoes:
proxyEndereco: http://fake.com
proxyPorta: 8080
如果我从配置文件中删除 @ConfigurationProperties
,消息就会消失。
这是我的 build.gradle 文件:
buildscript
repositories
mavenLocal()
maven url('http://repo.spring.io/plugins-release')
mavenCentral()
dependencies
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.3.RELEASE")
classpath('org.springframework.build.gradle:propdeps-plugin:0.0.7')
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'propdeps'
apply plugin: 'propdeps-idea'
sourceCompatibility = 1.7
repositories
mavenLocal()
mavenCentral()
dependencies
compile("org.springframework.boot:spring-boot-starter")
compile("org.springframework.boot:spring-boot-devtools")
optional("org.springframework.boot:spring-boot-configuration-processor")
compile('org.codehaus.groovy:groovy-all:2.3.11')
compile('com.machinepublishers:jbrowserdriver:0.17.3')
compile("org.im4java:im4java:1.4.0")
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile("org.spockframework:spock-core:1.1-groovy-2.4-rc-3")
compileJava.dependsOn(processResources)
compileGroovy.dependsOn(processResources)
关于发生了什么以及如何解决此问题的任何想法?
【问题讨论】:
【参考方案1】:@Stephane 帮我找到了答案。
Groovy 确实不支持注释处理器,但我也没有设法让它在 src/main/java
中工作。
我发现 build
中的 classes
子文件夹被 IntelliJ 标记为 excluded
(我不知道为什么)。
当我尝试一一解决问题时,我从未成功。当我一次执行所有修复并将 classes
子文件夹标记为 NOT 时,一切正常(尽管 IntelliJ 一直向我显示错误消息)。
感谢@Stephane 帮助我。
【讨论】:
【参考方案2】:很遗憾,Groovy 不支持注解处理器。您可能想要报告 IJ 不应该在 Groovy 代码中显示此警告。
【讨论】:
为什么它不能在同一个项目中的 Java 类中工作?我知道java类由gradle的任务compileJava
处理,groovy类由compileGroovy
处理。我错了吗?
它应该与同一个项目中的 java 类一起使用。我不能不看就告诉你为什么。以上是关于使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 和 Gradle - 不能应用于“(groovy.lang.Closure)”
使 IntelliJ 突出显示 Groovy/Grails 语法错误
02-Groovy-IntelliJ IDEA配置Groovy开发环境
如何在 IntelliJ IDEA Grails 项目中为 groovy 方法获取 javadocs / groovydocs?