一般情况下用源代码编译,生成的都是开发版本,这种版本做版本号校验方面会有很多问题,所以需要编译自己的release版本。

export USE_BAZEL_VERSION=1.2.1 # 选择使用版本为准备定制的bazel版本的基础版本,否则部分规则跨大版本bazel语法不兼容

yum install java-11-openjdk java-11-openjdk-devel  # 如果在ubuntu,需要使用apt install XXX

如果直接下载的源代码包解压编译的话,会没有git的commit记录,这样改版本号的脚本会不过,需要写死一个commit号,如果是git clone下来的branch或者tag的话,下面的修改不用做:

diff ../bazel-1.2.1-dist/scripts/ci/build_status_command.sh ../bazel-0.24.1-dist/scripts/ci/build_status_command.sh
25,26c25
< #git_hash=$(git rev-parse --short HEAD)
< git_hash=5c4c67c
---
> git_hash=$(git rev-parse --short HEAD)

先编译一个开发版本:

bazelisk build --sandbox_tmpfs_path=/tmp //src:bazel

定义需要打包的版本号:

export release_name=1.2.1

上面这句命令表示生成的版本号就是1.2.1

修改开发版本的版本信息生成发布版本的ubuntu操作系统命令:
mkdir output
cp bazel-bin/src/bazel output/bazel
output/bazel build \
-c opt \
--stamp \
--sandbox_tmpfs_path=/tmp \
--embed_label "${release_name}" \
--workspace_status_command=scripts/ci/build_status_command.sh \
src/bazel \
src/bazel_nojdk \
scripts/packages/with-jdk/install.sh \
scripts/packages/debian/bazel-debian.deb \
scripts/packages/debian/bazel.dsc \
scripts/packages/debian/bazel.tar.gz \
bazel-distfile.zip

centos/tlinux命令:

mkdir output
cp bazel-bin/src/bazel output/bazel

output/bazel build \
-c opt \
--stamp \
--sandbox_tmpfs_path=/tmp \
--embed_label "${release_name}" \
--workspace_status_command=scripts/ci/build_status_command.sh \
src/bazel

这样之后下面的版本就是发布版本了,版本号就是${release_name}里面指定的

bazel-bin/src/bazel

如果想要用自己定制的bazel版本,需要启动一个http服务器,并将编译好的bazel版本按路径放到对应目录下,下面的例子是本地启动的http服务器:
export BAZELISK_BASE_URL=http://127.0.0.1/bazel

完整编译过程可以参照bazel的CI脚本:

continuous-integration/bazel-release.yml at master · bazelbuild/continuous-integration (github.com)

How to build your custom release bazel version?的更多相关文章

  1. [AngularFire2] Build a Custom Node Backend Using Firebase Queue

    In this lesson we are going to learn how to build a custom Node process for batch processing of Fire ...

  2. PHP build notes - WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).

     WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, ...

  3. Error importing tensorflow. Unless you are using bazel version `CXXABI_1.3.8' not found

    I have re-installed Anaconda2. And I got the following error when 'python -c 'import tensorflow'' &g ...

  4. [MDX] Build a Custom Provider Component for MDX Deck

    MDX Deck is a great library for building slides using Markdown and JSX. Creating a custom Providerco ...

  5. Android为TV端助力 eclipse build project 出现major.minor version 52.0的问题

    那些网上说的JDK什么的的问题,我求你们不要误人子弟好吗? 出现在这个的原因就是ADT也就是你的SDK manager 的Tools版本跟你的SDK版本不兼容,如果你的是SDK 23.0.2那你的To ...

  6. android手机状态解释,比方android.os.Build.VERSION.SDK

    //BOARD 主板 String phoneInfo = "BOARD: " + android.os.Build.BOARD; phoneInfo += ", BOO ...

  7. Android Build.VERSION.SDK_INT兼容介绍

    尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的.向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK.可以在高SDK上开 ...

  8. .NET 的 Debug 和 Release build 对执行速度的影响

    这篇文章发布于我的 github 博客:原文 在真正开始讨论之前先定义一下 Scope. 本文讨论的范围限于执行速度,内存占用什么的不在评估的范围之内. 本文不讨论算法:编译器带来的优化基本上属于底层 ...

  9. OA Framework - How to Find the Correct Version of JDeveloper to Use with E-Business Suite 11i or Release 12.x (Doc ID 416708.1)

    APPLIES TO: Oracle Applications Framework - Version 11.5.10.0 to 12.2.2 [Release 11.5.10 to 12.2] In ...

随机推荐

  1. namenode和datanode启动失败

    1.namenode启动失败,查看错误原因,是无法格式化,再看日志,根据日志提示,清空对应的目录,即可解决这个问题. 2.datanode启动失败: Can't open /var/run/cloud ...

  2. 关于中文版的manpages

    可以从下面下载对应的包: https://code.google.com/p/manpages-zh/ https://github.com/lidaobing/manpages-zh 目前只有一部分 ...

  3. linux学习之路第八天(组管理和权限管理)

    组管理和权限管理 1.Linux 组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者,所在组,其他组的概念 1)所有者 2)所在组 3)其它组 4)改变 ...

  4. 你知道购买车票的原理吗?Java 线程同步

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 大周末的还是6点起床,起床的第 ...

  5. VS Code 下载安装并设置中文面板显示

    下载: 下载地址:https://code.visualstudio.com/ 微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 M ...

  6. SyntaxError: unexpected EOF while parsing成功解决

    报错在eval()函数: 我加了个 if 判断是否为空,就可以正常运行了!

  7. SpringBoot 整合 MybatisPlus 3.0

      CRUD是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中DataBase或者持久层的 ...

  8. FreeRTOS-01-任务相关函数

    3 任务相关API函数 任务相关函数如下: 任务创建和删除API函数 任务创建和删除实验(动态方法) 任务创建和删除实验(静态方法) 任务挂起和恢复API函数 任务挂起和恢复实验 3.1 任务创建AP ...

  9. 安装geatpy库到指定的conda虚拟环境中

    在Anaconda Prompt中输入conda install geatpy,提示找不到这个库: 输入pip install geatpy,安装成功:但是安装在默认conda环境下(以下为pycha ...

  10. 微信小程序工具下载与安装

    下载 第一步:百度搜索"微信公众平台" 第二步:登录微信公众平台 第三步:点击微信开发者工具 第四步:按照自己的操作系统下载对应的版本的开发者工具,我的是Windows10 64位 ...