0

我正在编写一个简单的控制台应用程序,它应该在执行时生成一些 kotlin 代码。我遇到了一个奇怪的问题,我无法添加 KotlinPoen 依赖项。我的 build.gradle:

plugins {
    id 'java-library'
    id 'kotlin'
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation group: 'com.squareup', name: 'kotlinpoet', version: '1.7.2'
}

但在 PoetApp.kt 导入失败并显示消息Unresolved reference: squareup

import com.squareup.kotlinpoet.FunSpec

object PoetApp {

    @JvmStatic
    fun main(vararg param: String) {
        val main = FunSpec.builder("main")
            .addCode("""
        |var total = 0
        |for (i in 0 until 10) {
        |    total += i
        |}
        |""".trimMargin())
            .build()
    }

}
4

1 回答 1

3

您已声明 Java 与 1.7 版本兼容,但此版本的 kotlinpoet 仅适用于 1.8 及更高版本,请参阅库 gradle 文件以及此处解决的一些兼容性问题。

所以你的 build.gradle 应该是这样的:

plugins {
    id 'java-library'
    id 'kotlin'
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation group: 'com.squareup', name: 'kotlinpoet', version: '1.7.2'
}
于 2021-03-17T08:22:31.743 回答