Я начал с включения плагина ksp в файл сборки Android:
Код: Выделить всё
plugins {
// ...
alias(libs.plugins.ksp)
}
// ...
kotlin {
// ...
sourceSets {
androidMain.dependencies {
// ...
}
commonMain.dependencies {
implementation(libs.bundles.arrow)
}
}
}
dependencies {
// ...
add("kspAndroid", libs.arrow.optics.ksp)
}
Код: Выделить всё
[versions]
arrow = "2.1.2"
[libraries]
arrow-optics = { module = "io.arrow-kt:arrow-optics", version.ref = "arrow" }
arrow-optics-ksp = { module = "io.arrow-kt:arrow-optics-ksp-plugin", version.ref = "arrow" }
[bundles]
arrow = [
# ...
"arrow-optics",
]
Мой пример:
Код: Выделить всё
fun test() {
val foo = Foo("bar")
Foo.bar.set(foo, "baz")
}
@optics
data class Foo(val bar: String) {
companion object;
}
Поэтому мне кажется, что gradle не может найти сгенерированный код для процесса сборки.
Также обратите внимание, что я использую другой плагин ksp (тот, который для базы данных комнат), который работает отлично.
Кстати, я также хотел бы добавить kps оптики в общий код и остальную часть моего проекта.
(Я пробовал, но тоже не получилось).
Информация о проекте.
- место генерации кода:
Сгенерированный код из моего примера выше попадает в composeApp/build/generated/ksp/android/androidDebug/kotlin/essens/planer/app/Foo__Optics.kt
в то время как сгенерированный код из плагина room ksp находится в проекте composeApp/build/generated/ksp/android/androidDebug/kotlin/essens/planer/data/ - project структура:
- shared
commonMain - commonTest
- androidMain
- androidUnitTest
- commonMain
- основной
- тест
- версии
Версия Gradle: 8.11.1
Версия Kotlin: 2.2.0
Версия KSP: 2.2.0-2.0.2
Версия со стрелкой: 2.1.2
- https://slack-chats.kotlinlang.org/t/15 ... ow-optics-
- https://github.com/arrow-kt/arrow/issues/2924
- неразрешенная ссылка на Kotlin Arrow «оптика»
- как настроить ksp в моих файлах сборки Android gradle groovy dsl
- kotlin стрелка "оптика" сгенерированные ksp файлы
- https://docs.gradle.org/current/dsl/org ... rySet.html
- gradle debug получить добавленный srcDir
- Как я могу добавить сгенерированную исходную папку в мой исходный путь в Gradle?
- https://old.arrow-kt.io/docs/optics/
- Неразрешенная ссылка в ссылке на класс оптических данных Kotlin
- https://kotlinlang.org/docs/ksp-quickst ... -a-project
- https://github.com/arrow-kt/arrow/issues/2646
Подробнее здесь: https://stackoverflow.com/questions/797 ... mp-project
Мобильная версия