我希望在我的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。