当前位置: 首页 > 知识库问答 >
问题:

巴泽尔取//...对生成和工作区文件不执行任何操作

严易安
2023-03-14

我无法让bazel下载并构建外部依赖项。

也许我在这里遗漏了一些明显的东西,
但是让我们以gtest为例。
在我的工作区的根目录中,我有一个gtest.buildworkspace

它们被定义为:

cc_library(
    name = "main",
    srcs = glob(
        ["src/*.cc"],
        exclude = ["src/gtest-all.cc"]
    ),
    hdrs = glob([
        "include/**/*.h",
        "src/*.h"
    ]),
    copts = ["-Iexternal/gtest/include"],
    linkopts = ["-pthread"],
    visibility = ["//visibility:public"],
)
new_http_archive(
    name = "gtest",
    url = "https://github.com/google/googletest/archive/release-1.7.0.zip",
    build_file = "gtest.BUILD",
    strip_prefix = "googletest-release-1.7.0",
)

我试图遵循Bazel关于外部依赖关系的文档,
,但我不知道我遗漏了什么。有什么想法吗?

我查看了$(bazel info output_base)/external
内部,但在那里没有看到任何m个构建的依赖项。

共有1个答案

甄成弘
2023-03-14

当前工作区//...中的任何内容都可能依赖于@gtest//...中的任何目标,因此运行Bazel fetch//...不会告诉Bazel它需要下载@gtest

$ bazel fetch //...
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
...........
$

如果您尝试直接运行Bazel fetch@gtest//...,它将按预期下载归档:

$ bazel fetch @gtest//...
INFO: SHA256 (https://github.com/google/googletest/archive/release-1.7.0.zip) = b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0
Building: no action

现在,如果添加一个依赖于@gtest//:main的目标并再次运行bazel fetch//...,它将下载@gtest:

$ bazel clean --expunge
INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.

$ cat BUILD
filegroup(
    name = "gtest",
    srcs = ["@gtest//:main"],
)

$ bazel fetch //...
Starting local Bazel server and connecting to it...
..........
INFO: SHA256 (https://github.com/google/googletest/archive/release-1.7.0.zip) = b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0
Building: no action

$ ls $(bazel info output_base)/external
bazel_tools  @bazel_tools.marker  gtest  @gtest.marker  local_config_cc  @local_config_cc.marker
 类似资料:
  • 我目前正在按照本教程重新训练盗梦空间v3神经网络的顶层:https://www.youtube.com/watch?v=m2D02eZTB4shttps://www.tensorflow.org/tutorials/image_retraining 我已经安装了一个运行Ubuntu 14.04.5 LTS 64位的VirtualBox Python 2.7.6 张量流1.3.0 bazel构建标签

  • 我正在尝试通过NIFI从oracle数据库中提取数据。在画布中,我将文件大小为0 KB的“GenerateFlowFile”处理器安排为每5分钟运行一次。这只是为了在成功时触发“executesql”处理器。对于“executeSQL”,我将DB连接池服务设置为DBCPConnectionPool。我输入SQL查询“select*FROM sometable”。我的DBCPConnectionPo

  • 问题内容: 我正在运行一个Electron项目,一切都很好。但是现在,当我运行package.json中的任何脚本(包括npm start)时,它只是转义了一行而没有执行任何操作。 我的package.json: 我尝试更新NPM,但没有用。当我在其他项目中尝试过时,也不起作用。 提前致谢 问题答案: npm具有配置密钥。它的期望值是布尔值,默认设置为。 可能是由于疏忽而将其设置为。 要/ 的配置

  • 谷歌刚刚开源了它的构建工具Bazel。这个工具和Gradle有什么不同?它能做什么是Gradle做不到的,它做什么更好,Gradle做什么更好?

  • 我正在Eclipse(版本:Kepler发行版)中编辑一个Java源代码。在其他编辑器上,我不使用导航文本,使用Ctrl+右移动到下一个单词,使用Ctrl+Shift+右选择下一个单词。但是在eclipse上什么都没有发生,光标停留在同一个地方。 在窗口->首选项->常规->键上,绑定似乎是正确的,它说:命令:下一个单词;绑定:Ctrl+右;当:编辑文本;类别:文本编辑。 但不管用。

  • 我在一个项目中工作,我需要要求用户输入一个路径来使用jOptionPane保存程序,但我的问题是,如果用户没有在文本中添加任何内容,然后单击取消或确定,将得到一个错误...我试图控制它,检查字符串是否为空()或等于空