升级到spring-boot-3.1.0后native-image启动报错以及问题解决
· 7 min read
本文主要介绍升级到spring-boot-3.1.0后native-image启动报错以及对应问题的解决方案
本文主要介绍升级到spring-boot-3.1.0后native-image启动报错以及对应问题的解决方案
在之前的文章中, 我介绍过如何通过graalvm
将java
应用打包成二进制文件, 但是这种方式需要在graalvm
中安装native-image
工具, 并且需要在graalvm
中编译java
应用, 这样的方式对于java
应用的开发者来说, 有一定的门槛, 而且也不够灵活.
并且构建过程中由于代码没有满足graalvm
的要求, 例如使用了java
的反射机制, 会导致构建失败(
graalvm需要在编译时就知道这些信息来生成)
下面将介绍另一种方式, 通过gradle
的JavaPackager
插件来构建二进制文件.
本文主要整理了在构建spring-boot
应用为native
的过程中遇到的问题.
基于graalvm
的spring boot
项目打包好后调用/scheduling/api/v1/taskDefinitions
接口返回如下数据, 其中triggerStrategy
字段是空json
对象
[
{
"id": "BILLING_SYNC_FOR_DEPLOYMENT_127",
"triggerStrategy": {},
"tags": {
"EXECUTOR": "com.fastonetech.billing.sync.scheduling.BillingSyncTaskExecutor"
},
"variables": {
"SOURCE_RCLONE_CONFIG": "TENCENT_ap-beijing",
"SOURCE_BUCKET": "cheng1201-1310454728",
"SOURCE_PATH": "",
"TARGET_RCLONE_CONFIG": "aggregation",
"TARGET_BUCKET": "billing-aggregation",
"TARGET_PATH": "TENCENT/ap-beijing/cheng1201-1310454728"
}
}
]