贡献代码

从源码构建

qianmoQqianmoQ· 更新于 2026-09-29· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

使用 Maven 构建

Kyuubi 基于 Apache Maven 构建,

./build/mvn clean package -DskipTests

这将创建 Kyuubi 项目的所有子模块,而不会运行任何单元测试。

如果你想手动测试,可以从 Kyuubi 项目根目录直接启动 Kyuubi,运行如下命令:

bin/kyuubi start

单独构建某个子模块

例如,你可以使用以下命令构建 Kyuubi Common 模块:

build/mvn clean package -pl kyuubi-common -DskipTests

单独构建子模块

例如,你可以使用以下方式构建 Kyuubi Common 模块:

build/mvn clean package -pl kyuubi-common,kyuubi-ha -DskipTests

跳过部分模块

例如,你可以使用以下命令在不构建 Kyuubi Codecov 和 Assembly 模块的情况下构建 Kyuubi 模块:

mvn clean install -pl '!dev/kyuubi-codecov,!kyuubi-assembly' -DskipTests

针对不同 Apache Spark 版本构建 Kyuubi

自 v1.1.0 起,Kyuubi 支持使用不同的 Spark profile 进行构建:

Profile默认起始版本
-Pspark-3.21.4.0
-Pspark-3.31.6.0
-Pspark-3.41.8.0
-Pspark-3.5✓1.8.0

针对不同 Scala 版本构建 Kyuubi

自 v1.8.0 起,Kyuubi 支持使用不同的 Scala profile 进行构建。目前,Kyuubi 支持使用 Scala 2.12 和 2.13 进行构建,默认使用 Scala 2.12。

Profile默认起始版本
(Scala 2.12)✓-
-Pscala-2.131.8.0

当需要 Scala 2.13 支持时,请激活 scala-2.13 profile。GA 测试已涵盖 Kyuubi 服务器、引擎及相关插件的集成测试,但 Flink 引擎及其集成测试未包含在内,原因是 Flink 尚不支持 Scala 2.13,并且将逐步移除对 Scala 的客户端支持。

对于 Spark 引擎所使用的 Scala 版本,服务器会优先查找 SPARK_SCALA_VERSION 系统环境变量,若该变量未设置,则使用编译服务器时所采用的 Scala 版本。对于其他引擎所使用的 Scala 版本,服务器将使用编译服务器时所采用的 Scala 版本。

使用 Apache dlcdn 站点进行构建

默认情况下,我们使用 https://archive.apache.org/dist/ 下载引擎(如 Spark 或 Flink)的内置发行包。但有时你可能会发现该站点难以访问,或者下载速度过慢,此时可以通过 -Pmirror-cdn 定义 apache.archive.dist 来提升下载速度。例如:

build/mvn clean package -Pmirror-cdn

该 profile 会将你的下载仓库迁移到 Apache 官方推荐的站点 - https://dlcdn.apache.org。请注意,该站点仅提供 Apache 最新版本的发行包。如果 spark.version 或 flink.version 中指定的特定版本已过期,则下载可能会失败。

使用 fast profile 构建

fast profile 可通过跳过运行测试、代码风格检查、构建 scaladoc、执行 enforcer 规则以及下载测试所需的引擎归档包,显著缩短构建时间,适用于开发或编译验证场景。

build/mvn clean package -Pfast

评论

登录后参与评论

正在加载评论…