1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
以 開頭的二進(jìn)制文件bazel run在內(nèi)部 Bazel 目錄中執(zhí)行。他們將有權(quán)訪問“運(yùn)行文件”,這些文件是data二進(jìn)制規(guī)則或其依賴項(xiàng)的屬性中提到的文件。例如,如果您有如下規(guī)則,您將能夠讀取foo.txt,但不能讀取bar.txt或 其他文件:
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
go_binary(
name = "hello",
srcs = ["hello.go"],
data = ["foo.txt"],
)
請注意,二進(jìn)制文件的工作目錄對應(yīng)于存儲(chǔ)庫根目錄,而不是定義二進(jìn)制文件的目錄。您可以使用os.Getwd和進(jìn)行調(diào)試filepath.Walk。
您提到過您想要訪問在命令行中傳入的 yaml 文件。據(jù)推測,您希望能夠訪問用戶傳入的任何文件,而不僅僅是屬性中提到的文件data。對于這種情況,請查看BUILD_WORKING_DIRECTORY環(huán)境變量(bazel run設(shè)置)。bazel run這給出了調(diào)用目錄的路徑。此外,BUILD_WORKSPACE_DIRECTORY是工作區(qū)根目錄的路徑。
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)