在 gradle 的 buildSrc/ 中序列化 kotlin 数据类



我希望在我的kotlin gradle应用程序的构建周期中产生json文件。我的意图是能够实例化数据类,将公共和私有应用程序配置值的组合放入构建的资源目录。

我在看kotlinx。序列化,我想在项目的buildSrc/中理想地定义这些类。

我没有在网上找到任何资源来尝试在gradle的构建过程中设置序列化,而不仅仅是在运行时为应用程序配置它。这是我放在一起的buildSrc/build.gradle.kts

plugins {
`kotlin-dsl`
kotlin("plugin.serialization") version "1.3.72"
}
repositories {
jcenter()
}
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0")
}

这是我的测试数据类:

@Serializable
data class JsonGenerator(val x: String = "")
我得到的错误是:
Cannot access 'Serializable': it is internal in 'kotlin.io'

似乎这个错误可能发生在没有正确声明依赖项的时候。但我仍然不清楚buildSrc是否有限制,使这是不可能的。我不喜欢这种方法,但这似乎是最好的解决方案。

编辑:

我已经改变了我的buildSrc/build.gradle。节:

plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}
dependencies {
implementation(kotlin("serialization"))
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1")
}

结构:

buildSrc
main
Kotlin
MyTempClass.kt

kt文件不嵌套是很重要的,我认为只有当文件与嵌套目录同名时才会起作用

在我的数据类文件中:

import kotlinx.serialization.*
@Serializable
data class MyTempClass(val name: String)

我有一个特定的序列化实现,没有插件。

然后在顶层的build.gradle。

相关内容

  • 没有找到相关文章

最新更新