如何获取Bazel中的外部依赖关系

时间:2019-05-08 10:43:35

标签: build bazel external-dependencies http-archive

我希望bazel从URL获取外部依赖关系。该文件是rpm文件。 我将此添加到根目录的WORKSPACE文件中:

http_archive(
    name = "mylib",
    url = "someURL/somefile.rpm",
    build_file = "example.BUILD"
)

当我尝试:

bazel fetch @mylib//...

它说:

"com.google.devtools.build.lib.syntax.EvalException: Expected a file with a .zip, .jar, .war, .tar, .tar.gz, .tgz, .tar.xz, .txz, or .tar.bz2 suffix"

基本上,它不允许下载rpm deps。我该如何实现? 如何下载rpm类型的外部依赖项。

2 个答案:

答案 0 :(得分:0)

您正在尝试获取.rpm文件,但是bazel似乎仅接受带有后缀.zip, .jar, .war, .tar, .tar.gz, .tgz, .tar.xz, .txz, or .tar.bz2的存档文件。

答案 1 :(得分:0)

您现在肯定已经知道了。 就像@ sebastian-nowak评论一样,您可以执行以下操作:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")

http_file(
    name = "mylib",
    url = "someURL/somefile.rpm"
)

,然后在您的example.BUILD中用@mylib//file

进行引用

(来源:https://docs.bazel.build/versions/master/repo/http.html#http_file