GraalVM Native
Kora создает свои вспомогательные классы во время компиляции, так что проблем для сборки нативного образа быть не должно.
Пример сборки нативного образа с помощью плагина для gradle
:
Плагин build.gradle
:
Настройка плагина build.gradle
:
graalvmNative {
binaries {
main {
imageName = "application"
mainClass = "ru.tinkoff.kora.example.Application"
debug = true
verbose = true
buildArgs.add("--report-unsupported-elements-at-runtime")
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
vendor = JvmVendorSpec.matching("GraalVM Community")
}
}
}
metadataRepository {
enabled = true
}
}
Плагин build.gradle.kts
:
Настройка плагина build.gradle.kts
:
graalvmNative {
binaries {
named("main") {
imageName.set("application")
mainClass.set("ru.tinkoff.kora.example.Application")
debug.set(true)
verbose.set(true)
buildArgs.add("--report-unsupported-elements-at-runtime")
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
vendor = JvmVendorSpec.matching("GraalVM Community")
}
}
}
metadataRepository {
enabled.set(true)
}
}
Некоторые библиотеки требуют дополнительной конфигурации, часть конфигураций сделана в фреймворке.
Проверенные модули, которые должны работать без дополнительной конфигурации:
- Конфигурация
- Json
- Logback
- Пробы
- Метрики
- Трасcировка
- HTTP сервер
- HTTP клиент
- OpenAPI генерация
- OpenAPI отображение
- База данных JDBC (Postgres)
- База данных R2DBC (Postgres)
- База данных Vertx (Postgres)
- База данных Cassandra
- Kafka
- gRPC сервер
- gRPC клиент
- Отказоустойчивость
- Кеш
- Валидация
- Планировщик
- Логирование