gpt4 book ai didi

gradle - 如何在IntelliJ/Kotlin中设置序列化?

转载 作者:行者123 更新时间:2023-12-02 13:31:43 25 4
gpt4 key购买 nike

我为一个菜鸟问题道歉:我正在尝试检查序列化在Kotlin中是如何工作的。

为此,我创建了一个Gradle项目,如下所示:

enter image description here

通过仅添加一行来编辑生成的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")
}

官方说明中有一个错误版本:no org.jetbrains.kotlin.config.
但是,这还不够。我正在从Kotlin文件执行“运行”。这导致另一个错误
error: unable to evaluate script, no scripting plugin loaded

由于讨厌的错误(例如,我浪费了 HOURS HOURS 试图找出我做错了什么) https://youtrack.jetbrains.com/issue/KT-37814

需要明确执行“构建项目”。

关于gradle - 如何在IntelliJ/Kotlin中设置序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60940476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com