Bazel 宏失败,并显示“名称‘glob’未定义’”

use*_*610 4 macros bazel

我定义了一个 Bazel 宏。它看起来像这样:

def my_macro():
    java_binary(
        srcs = glob(["*.java"])
        # ...
    )
Run Code Online (Sandbox Code Playgroud)

当我运行 Bazel 时,它失败并出现错误

ERROR: /home/.../macros.bzl:105:19: name 'glob' is not defined
Run Code Online (Sandbox Code Playgroud)

可以glob在宏中使用吗?

use*_*610 9

glob函数仅在 BUILD.bazel 文件中可用。在.bzl文件的宏定义中,将其作为native.glob.

def my_macro():
    java_binary(
        srcs = native.glob(["*.java"])
        # ...
    )
Run Code Online (Sandbox Code Playgroud)

参考文献:https://groups.google.com/forum/#!topic /bazel-discuss/sXa60DnjxiA