Bazel函数

1. Glob

java_binary(
    name = "ProjectRunner",
    srcs = glob(["src/main/java/com/example/*.java"]),
)

glob(include, exclude=[], exclude_directories=1)

该函数返回的是括号内()匹配的文件列表,通配符**代表任意完整路径,但是只能搜索匹配包内文件,子包文件无法匹配。

eg:

java_library(
    name = "mylib",
    srcs = glob(["*.java"]) + [":gen_java_srcs"],
    deps = "...",
)

genrule(
    name = "gen_java_srcs",
    outs = [
        "Foo.java",
        "Bar.java",
    ],
    ...
)

本例表示匹配本文件夹内所有.java文件并且加上由gen_java_srcs生成的文件。

eg:

java_library(
    name = "mylib",
    srcs = glob(
        ["**/*.java"],
        exclude = ["**/testing/**"],
    ),
)

创建一个由该目录中的所有java文件构建的库以及除路径包含名为testing的目录的所有子目录外的所有子目录。包含BUILD文件的子目录将被忽略。 如果可能,应该避免使用这种模式,因为它可以减少构建的增量并因此增加构建时间。

eg:

sh_test(
    name = "mytest",
    srcs = ["mytest.sh"],
    data = glob(["testdata/**/*.txt"]),
)
匹配testdata文件夹下所有子目录的txt文件。

2.Licenses:

licenses(license_types)


licenses()为BUILD文件中的构建规则指定默认的许可证类型,需要放在BUILD文件的起始位置附近并且在BUILD文件规则的前面。

参数license_types包括 restricted、reciprocal、notice、permissive、unencumbered

3.Package:

    package(default_deprecation, default_testonly, default_visibility, features)

该函数常放于BUILD文件中的load()函数后,任意规则前。此函数声明适用于包中每个后续规则的元数据。

default_visibility

此包中规则的默认可见性。除非visibility 在规则属性中另有规定,否则此包中的每个规则都具有在此属性中指定的可见性

4.exports_files

exports_files([label, ...], visibility, licenses)

若在该函数中未声明可见性,则labels中所代表的的文件对任意包均可见。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值