【问题标题】:"Re-run SpringBoot Configuration Annotation Processor" in project with Groovy, IntelliJ and Gradle使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”
【发布时间】:2017-05-21 07:06:54
【问题描述】:

我正在使用 IntelliJ 15.0.6、SpringBoot 1.4.3.RELEASE、Gradle 2.14 和 Groovy 2.3.11。

我从 IntelliJ 收到以下消息:

我尝试关注StackOverFlowthe official documentationJavaCodeGeeks,但没有成功。

这是我的配置文件:

@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)

关于发生了什么以及如何解决此问题的任何想法?

【问题讨论】:

    标签: intellij-idea gradle groovy spring-boot


    【解决方案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 类一起使用。我不能不看就告诉你为什么。
      猜你喜欢
      • 2020-08-05
      • 1970-01-01
      • 2020-01-14
      • 2016-02-02
      • 2017-07-15
      • 2015-06-06
      • 1970-01-01
      • 2019-03-14
      • 2014-02-25
      相关资源
      最近更新 更多