文章目录
参考
- 大仓标准化项目镜像制作与推送 123 指引
- 123平台 非trpc框架编译
- 123构建镜像原子插件使用说明 及其 git仓库源码
- 123平台 start monitor脚本demo项目
- 部署到123平台 maven编译的 java项目
背景
如何搭建流水线用bazel编译java项目(非trpc框架),并发布至123平台。大仓虽然给出了教程大仓标准化项目镜像制作与推送 123 指引,但其方案并不准确,实践时有很多坑会踩。本文给出正确流程。
大仓教程思路
官方教程大仓标准化项目镜像制作与推送 123 指引的思路是,假设当前java项目已在大仓标准化,则需要完成以下事项:
- 在项目中引入123平台的打包插件
- 配置编译镜像并发布到123平台的流水线
引入打包插件
使用如下打包插件。运行它,可以替你构建编译目标,并打包成123平台所接受的压缩包格式。
load("//tools/build_defs/pkg:123.bzl", "non_trpc_123_package")
# 用于非trpc程序部署在123平台
non_trpc_123_package(
name = "ZkDialTest_123_package", # ZkDialTest是123平台上的server名,123_package最好固定
binary = ":ZkDialTest", # 构建目标的java_binary名,最好统一成和123上的server名一致
# bin_extra_files = [
# "//path/to/files:target1",
# "//path/to/files:target2",
# ], # 需要被打包进 bin 目录的额外文件或文件夹,可使用 filegroup 或 pkg_files 进行包装
monitor_shell = "monitor.sh", # 监控脚本,必填
start_shell = "start.sh", # 启动脚本,必填
stop_shell = "stop.sh", # 停止脚本,必填
visibility = ["//visibility:public"],
)
流水线中运行它时,执行以下命令即可。
bazel build //prod/bigdata/cdmq/DialTest:ZkDialTest_123_package
配置流水线
- 进入项目自己的蓝盾流水线空间,逐步选择“新建流水线-从模板新建-研发商店”,搜索 “大仓标准化项目镜像制作与推送 123”,按照默认的自由模式进行实例化。将这个流水线复制,并自行编辑。
- 若流水线的前置步骤 tencent2 仓库别名未命名为 depot/tencent2,需修改 “拉取GIT(命令行ÿ