[英]How to setup serialization in IntelliJ/Kotlin?
我為一個菜鳥問題道歉:我正在嘗試檢查序列化在 Kotlin 中是如何工作的。
為此,我創建了這樣的 Gradle 項目:
通過添加一行來編輯生成的build.gradle.kts
plugins {
java
kotlin("jvm") version "1.3.71"
id("org.jetbrains.kotlin.plugin.serialization") version "1.3.71"
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
testCompile("junit", "junit", "4.12")
}
configure<JavaPluginConvention> {
sourceCompatibility = JavaVersion.VERSION_1_8
}
tasks {
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
}
並創建了這個 Kotlin 源文件:
import kotlinx.serialization.*
import kotlinx.serialization.json.*
@Serializable
data class Data(val a: Int, val b: String = "42")
但是當我構建這個項目時,我收到了這個錯誤:
Unresolved reference: kotlinx
如果我刪除前兩條違規行,則會收到此錯誤:
Cannot access 'Serializable': it is internal in 'kotlin.io'
我在這里做錯了什么? (另外,我是否需要 Gradle 在 IntelliJ/Kotlin 1.3.71 中使用序列化?)
終於,想通了。 IntelliJ IDEA 中的一個BUG阻礙了我的故障排除。
為可能通過 Google 找到此問題的任何人留下答案:
build.gradle.kt
需要是
plugins {
java
kotlin("jvm") version "1.3.71"
kotlin("plugin.serialization") version "1.3.71"
}
repositories {
// artifacts are published to JCenter
jcenter()
}
dependencies {
implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION))
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0")
}
官方說明有一個錯誤版本:沒有org.jetbrains.kotlin.config.
然而,這還不夠。 我正在從 Kotlin 文件執行“運行”。 這導致另一個錯誤
error: unable to evaluate script, no scripting plugin loaded
由於一個討厭的錯誤(例如,我浪費了HOURS和HOURS試圖找出我做錯了什么) https://youtrack.jetbrains.com/issue/KT-37814
一個需要明確執行“構建項目”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.