我正在编写一个简单的控制台应用程序,它应该在执行时生成一些kotlin代码。我遇到了一个奇怪的问题,我无法添加KotlinPoen依赖。我的建筑.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()
}
}
您已经声明Java与1.7版本兼容,但此版本的kotlinpoeter只能与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'
}