SuperAPI AI 工具集

deploying-java-sdk-bundles

编程与开发

查看项目

更新于 10-15 17:20

技能介绍

用途:将编译后的 Airflow Java SDK 任务类与 SDK 一起打包成 JAR(或瘦 JAR 加依赖 JAR),放入每个 worker 上 JavaCoordinator 递归扫描的 jars_root 目录,使 worker 能够执行 JVM 任务。该技能为平台中立,构建一次后可分别用于开源 Airflow 与 Astro 部署。注意 Java SDK 处于预览阶段,版本以 ${version} 表示,预发布期可能需自行构建到本地 Maven 仓库。

主要能力与构建:Gradle 推荐方式为应用 org.apache.airflow.sdk 插件并声明 airflow-sdk 依赖,执行 ./gradlew bundle,输出在 build/bundle/;插件默认用 Shadow 生成 fat JAR,可用 fatJar = false 改为瘦 JAR,并会在构建时校验 mainClass。Maven 通过导入 airflow-sdk-bom 管理版本,fat JAR 用 maven-shade-plugin 并设置 Main-Class 与 Airflow-Supervisor-Schema-Version,瘦 JAR 用 maven-jar-plugin 加 copy-dependencies,Maven 不在构建时校验 mainClass。

日志集成:需为所用日志门面引入且仅引入一个 SDK 日志工件。新项目优先 System.Logger(airflow-sdk-jpl);其他门面如 SLF4J 2.x(airflow-sdk-slf4j)、Log4j 2(airflow-sdk-log4j2,需 log4j-core 与 AirflowAppender 配置)、JUL(airflow-sdk-jul,需调用 AirflowJulHandler.setup())。不应同时存在多个提供者。

使用方式:把 build/bundle/* 复制到 jars_root(如 /opt/airflow/jars/),worker 需 JRE 17+。开源路径可在镜像中安装 JRE 并 COPY 该目录,Kubernetes 可烘焙进镜像或挂载共享卷。Astro 路径为将 JAR 放入 include/jars,修改项目 Dockerfile 安装 JRE 并复制到协调器目录,配置写入 .env,用 astro dev start 或 astro deploy。

限制:SDK 与 Airflow 3.3 属预览,可能需要 beta/dev 版 Astro Runtime 镜像;版本勿凭记忆硬编码;jars_root 下若有多个可执行 JAR 需显式设置 main_class;协调器与队列路由配置由相关技能完成。