使用过的kotlin-spring插件,仍然没有打开类错误

时间:2017-06-02 18:32:49

标签: spring gradle kotlin

我得到的课程不能是最终的,需要开放,尽管添加了kotlin-spring插件。插件的整个目的是不要手动将open关键字添加到每个类。

请指导我使用Kotling-Spring插件处理下面的代码。

的build.gradle

buildscript {
    ext.kotlin_version = "1.1.2"

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
    }
}

apply plugin: "kotlin"
apply plugin: "kotlin-spring"
apply plugin: "kotlin-noarg"
apply plugin: "idea"

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    compile"org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    compile "org.springframework:spring-context:4.3.8.RELEASE"
    testCompile "org.springframework:spring-test:4.3.8.RELEASE"
    testCompile "junit:junit:4.11"
}

AppConfig.java

@Configuration
class AppConfig {

    @Bean
    fun game(): Game {
        return BaseballGame(redSox(),cubs())
    }

    @Bean
    fun redSox(): Team {
        return RedSox()
    }

    @Bean
    fun cubs(): Team {
        return Cubs()
    }
}

错误:

Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Configuration class 'AppConfig' may not be final. Remove the final modifier to continue.
Offending resource: AppConfig

参考:https://kotlinlang.org/docs/reference/using-gradle.html#plugin-and-versions

3 个答案:

答案 0 :(得分:1)

有同样的问题。在Intellij中启用注释处理解决了这个问题:

enter image description here

答案 1 :(得分:0)

有类似的问题。无法从IDE运行,但gradlew.bat build bootRun有效。通过在IDEA 中更新Kotlin插件解决,从1.2.40更新到1.2.41。

答案 2 :(得分:0)

在运行Springboot Application时,我也面临着类似的问题。最终我知道Kotlin Class默认是最终的。您需要在课程名称前添加打开

因此,您需要按如下所示更改类修饰符:

  

打开类AppConfig {

参考:

http://engineering.pivotal.io/post/spring-boot-application-with-kotlin/