一般情况下用源代码编译,生成的都是开发版本,这种版本做版本号校验方面会有很多问题,所以需要编译自己的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. Linux:修改Ubuntu环境变量后bash找不到

    1.问题显示 修改环境变量,导致命令全部失效  2.解决办法 #使用备份bin export PATH=/usr/bin:/bin  之后使用命令就可以了. 3.找到修改的环境变量 一般修改的环境变量 ...

  2. 网络编程+Python

    一.网络编程(模块:socket,from socket import *): 1. 网络层的IP地址可以唯一标识网络中的主机,传输层的"协议+端口"则可以唯一标识主机中应用程序( ...

  3. Ha1cyon-CTF 芜湖

    感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...

  4. Java | Map集合

    Map集合 在现实生活中,有非常多的东西,是和另外一种东西对应的,并且还是唯一的,比如:身份证号与个人,个人与手机,一夫一妻...等,这种关系就是对应关系,又叫做映射.Java为这种数据类型提供了专门 ...

  5. F5节点分配查看

    查看F5将服务分配到那个节点上了. 第一步: ssh登陆信息和密码 用户名:root 密码:123@.com 第二步: 查看客户端的那个设备连接到F5之后被分配到那个节点上的语句 ssh name: ...

  6. 利用PE破解系统密码

    1.利用pe制作工具制作pe启动盘或者ios镜像 2.制作好后,在虚拟机设置里面加载镜像 3. 3.开启时选择打开电源进入固件 4.开启后依次选择:Boot--->CD-ROM Drive并按F ...

  7. C++ 继承及委托

    从内存角度看继承和多重继承 http://www.doc88.com/p-9075148832569.html 在C++中实现委托(Delegate) https://blog.csdn.net/jf ...

  8. 学生信息管理系统--基于jsp技术和MySQL的简单增删改查

    web实现增删改查的方式有很多啊,对于初学者来说当然是要先了解各部分的传值的方式.本篇博客从jsp技术的最基础方面进行说明. 一.什么是jsp技术 首先,我们要了解什么是jsp技术. jsp技术是基于 ...

  9. PAT乙级:1090危险品装箱(25分)

    PAT乙级:1090危险品装箱(25分) 题干 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清 ...

  10. 《PHP 实现 Base64 编码/解码》笔记

    前言 早在去年 11 月底就已经看过<PHP 实现 Base64 编码/解码>这篇文章了,由于当时所掌握的位运算知识过于薄弱,所以就算是看过几遍也是囫囵吞枣一般,不出几日便忘记了其滋味. ...