首页 > 其他分享 >bazel使用的一点感受

bazel使用的一点感受

时间:2023-06-14 11:04:12浏览次数:42  
标签:package 感受 py bazel BUILD 一点 config downloader

最近在项目中用到了bazel,这里记录下使用过程中的一些心得

bazel编译是通过识别当前目录下BUILD或者BUILD.bazel文件,大概长这样:

点击查看代码
package(default_visibility = ["//visibility:public"])

sh_binary(
    name = "bootstrap_sh",
    srcs = ["bootstrap.sh"],
    data = [
        "//tools/linux/scripts:start_base.sh",
        "//system/linux/scripts:monitor_sh",
        "//scripts:module_manager_sh",
    ],
)

py_binary(
    name = "config_downloader_py",
    srcs = [
        "config_downloader.py",
    ],
    data = [
        "//config/system:config_mgmt",
    ],
    main = "config_downloader.py",
    deps = [
        "//base/file/py:path",
    ],
)

py_test(
    name = "config_downloader_test",
    srcs = [
        "config_downloader.py",
        "config_downloader_test.py",
    ],
    deps = [
        ":config_downloader_py",
        "//base/file/py:path",
    ],
)

一个BUILD对应一有个package,也就是包的说法,然后它可能有父包、子包,如果一个目录不包含BUILD或BUILD.bazel文件,则它只是一个纯粹的目录,隶属于最近的父包(包含BUILD或BUILD.bazel文件)。

这里面sh_binary对应shell脚本的package,py_binary对应python文件的package,py_test对应python的测试文件package,还有很多其他类型,像cc_binary,cc_library

name字段对应想生成的package名字
srcs表示源文件
deps表示源文件用到了哪些依赖的package
data表示运行package时可能需要用到的一些数据文件,比如运行测试package时需要用到的数据文件

运行命令:
bazel build xxx/xxx/path
bazel run xxx/xxx:package_name
bazel test //scripts:config_downloader_test --sandbox_writable_path=/opt

因为bazel运行时一般是在沙箱中进行,会隔离本机环境,在沙箱中默认对本机环境的文件是只有可读权限的,如果需要写权限,可以通过--sandbox_writable_path参数指定,指定一个目录为可写目录,对该目录下所有子目录也是拥有读写权限的

标签:package,感受,py,bazel,BUILD,一点,config,downloader
From: https://www.cnblogs.com/LuckyOven/p/17479607.html

相关文章

  • 随感 - 感受凸性、决策单调性、次模性、四边性不等式之间千丝万缕的联系
    昨天为了一道最小割树去看了16年王文涛的集训队论文,今天刚刚翻看了上场ABC_Ex的题解,连续两次碰见了submodularity这个词,简单记记自己的理解。其实只是想整理下思路,收集一下看不懂的博客。以下内容随意且不严谨。submodularity次模性或者叫子模性是运筹学中的重要概念,它描......
  • 小灰灰深度学习day7——画一元二次方程某一点的切线以及一些概念
    #我们在这里画的是方程3*x**2-4*x在x=1处的切线#欠拟合:欠拟合指的是模型对训练数据的拟合度过低,误差值过大,自然泛化能力也不怎么好。#泛化能力指模型对未知数据的拟合度#过拟合:指模型对训练数据的拟合度较好,误差值较小,但是泛化能力并不好。#对误差函数进行惩罚,从......
  • 小白上车,又学习了一点
    #include<stdio.h>intmain(){ inta=0; charpassword[40]={0}; printf("输入密码="); scanf("%s",password); getchar(); printf("确认(Y/N:"); a=getchar(); if(a=='Y') { printf("输入正确\n"......
  • 浏览器中跑定时器跑着跑着就慢了(离开当前页面,再次进来后时间会慢一点)
    最近再写一个考试系统,到点交卷,在手机上跑定时器是没问题的,在浏览器上跑的时候,一离开页面(指切换标签页),再次回来时间就会慢很多关于浏览器变慢的原因是,当离开当前页面时,cpu检测到你不在当前页面,为了节省资源,会放慢浏览器的时间。导致进入页面,时间变慢。有没有解决办法呢,当然是有的......
  • 两条宽带(移动、电信)如何同时使用的一种方法,一点都不浪费。
    原本我有一根电信的300M宽带,用着还行。但烦恼都是自找的,起因是我去移动换了手机套餐,移动非要送我一条宽带,然后免我宽带月租20元,不办宽带没有优惠(-50)。这办个宽带还能多优惠30元,可以的!果断答应了。办了宽带然后烦恼就找上门了,我只能使用一条线,多了宽带也只能放那浪费!因为只有电......
  • 自黑狠一点就不怕别人黑了鸭
    ......
  • 工作感受月记(202306月)
    2023年06月01号儿童节,工作在家。思考高中同学聚会的事,突发灵感写下长诗:聚会想法初生易,策划实行难度加。诚邀贵手搭一把,写个策划惠大家。聚会岂能只吃喝,故地校园游一游?九班教室今犹在?不见当年你我他。 忆那往昔之芳华,看这此时之脸颊,出走半生又想见,再入教室唤同学......
  • 每天都有一点新发现:Questa的Verilog仿真
        在自己的电脑里安装了QuestaIntelStarter和ModelSimStarter版本,因为不熟悉Questa,但是搜索了一下,发现它和ModelSim几乎是完全一样的。准备后续尽可能多的练习Questa的使用。    在Verilog里很多教材都会提供代码和生成的电路,今早用Questa试了一下生成的电路,......
  • 关于自己找工作的一点感悟
    tip:我是从2月21日~5月1日,本文是个人看法,主观意识较强,请大家酌情参考。面试岗位:Java开发一般每天11:00~11:30和18:00~18:30分回复率最高。Boos直聘上啥都有,建议直接海投;拉钩上放出的岗位少,但是已读回复率高,都是真招聘,建议认真投;51job国企多,比较看学历和证书之类。想进大厂,多......
  • 良好的面试体验多来一点!
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!今天学长在冲浪的时候,发现了大家都觉得暖心的新闻:面试后收到20元车马费。虽然钱不多,但比那些让人大老远跑去的萝卜坑有心多了。今天学长和大家聊聊一场大家都觉得舒心的面试......