巴泽尔的$地点扩张

2024-04-04

我想添加$(location)扩展到rules_scala for jvm_flags我在其中设置依赖项的属性data属性,但失败了:
label '//src/java/com/google/devtools/build/lib:worker' in $(location) expression is not a declared prerequisite of this rule.
我在目标中定义了对该标签的依赖关系data像这样的属性:

scala_specs2_junit_test(
    ...
    data = ["//src/java/com/google/devtools/build/lib:worker"],
    jvm_flags = ["-XX:HeapDumpPath=/some/custom/path", "-Dlocation.expanded=$(location //src/java/com/google/devtools/build/lib:worker)"],
)

当我添加时我看到了ctx.attr.data to the expand_location呼叫扩展有效,但我不太确定为什么这不是黑客。是data确实是特殊情况?

    location_expanded_jvm_flags = []
    for jvm_flag in jvm_flags:
        location_expanded_jvm_flags.append(ctx.expand_location(jvm_flag, ctx.attr.data))

还尝试在java_*规则来源来看看它是如何工作的(因为$(location)那里的扩展支持data属性)但找不到相关的地方。

完整目标:

scala_specs2_junit_test(
    name = "Specs2Tests",
    srcs = ["src/main/scala/scala/test/junit/specs2/Specs2Tests.scala"],
    deps = [":JUnitCompileTimeDep"],
    size = "small",
    suffixes = ["Test"],
    data = ["//src/java/com/google/devtools/build/lib:worker"],
    jvm_flags = ["-XX:HeapDumpPath=/some/custom/path", "-Dlocation.expanded=$(location //src/java/com/google/devtools/build/lib:worker)"],
)

你做对了。

我看了源码,你是对的:srcs, deps, and tools(如果在规则中定义)被添加到标签集中expand_locations明白了。data仅当添加LocationExpander https://github.com/bazelbuild/bazel/blob/7184b6f55a8cb72094a481d056fe89bc7be80c76/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java#L375-L378是用创建的allowDataAttributeEntriesInLabel=true,但事实并非如此。这就是为什么你必须将其添加到expand_locations(targets).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

巴泽尔的$地点扩张 的相关文章

  • 【名名的Bazel笔记】自定义工具链实现交叉编译

    文章目录 1 前言2 Non Platform 方式3 Platform 方式3 1 平台3 1 1 概述3 1 2 定义约束和平台3 1 3 通用的约束和平台3 1 4 指定平台构建 3 2 工具链3 3 Platform 43 Tool
  • bazel一些用法

    1 编译东西 要在根目录下 xff0c 和WORKSPACE在同一级 例如 xff0c 对于bazelbuild examples 而BUILD文件一般与源文件并列 examples cpp tutorial stage1 main BUI
  • 使用tensorflow作为存储库构建基于tensorflow的android应用程序

    这就像来自的后续问题使用 Tensorflow 构建 Android 应用 我想将 android 示例项目与tensorflow git repo 分开 并能够使用tensorflow 作为依赖项单独构建它 这是我的文件夹结构 my pr
  • bazel 的张量流构建错误

    我正在尝试使用 python2 7 在 Ubuntu14 04 上从源代码构建张量流 没有 GPU 当我执行时bazel build c opt tensorflow tools pip package build pip package在
  • Bazel:具有 JNI 依赖项的 Java 应用程序

    我已经成功构建了我的 JNI 库 jar jni 共享 cc library 包装的 cc library 但我不知道如何构建使用它的 Java 应用程序 我的构建很简单 java binary name OCFTestServer src
  • 张量流构建错误

    我在构建 Tensorflow 1 1 0 时遇到此错误 Starting local Bazel server and connecting to it ERROR home bishal cache bazel bazel bishal
  • 使用 Bazel 离线构建 C++ 项目(无需互联网连接)

    我尝试使用此命令从 Bazel 主页 入门 构建 Bazel C 构建教程 但没有任何互联网连接 bazel build main hello world Jenkins 服务器不会与互联网有任何连接 因此我无法进行预取或类似操作 有没有办
  • .bazelrc 中的用户名

    我想将其添加到我的 bazelrc 但是 whoami 不会像在壳里那样膨胀 startup output user root tmp bazel out whoami 它产生字面结果 tmp bazel out whoami faedb9
  • 替代 bazel 中的“`--whole-archive`”

    我想在我的基于 bazel 的 C 项目之一中链接外部静态库 我需要 whole archive 用于链接库 如 gcc 或 g build 的选项 g main cc Wl whole archive lhttp Wl no whole
  • 如何让 Bazel、ccache 和沙箱协同工作(ccache 只读文件系统)

    我正在尝试使用通过 copr 安装的 Bazel 0 16 1 和通过 DNF 安装的 ccache 3 4 2 在 Fedora 28 上构建 C 应用程序 我使用默认的 cc binary 和 cc library 规则 当我运行 ba
  • Bazel:如何获取输出二进制文件的路径?

    考虑somepath BUILD file load io grpc grpc java java grpc library bzl java grpc library proto library name bar proto srcs b
  • bazel.rc 中的默认、特定于平台、Bazel 标志

    我想知道特定于平台的默认 Bazel 构建标志是否可能 例如 我们想使用 workspace status command但这必须是 Linux 上的 shell 脚本 并且必须指向 Windows 上的批处理脚本 有没有一种方法可以让我们
  • 如何在 bazel 中指定 cc_library 的输出工件?

    我想将 foo c 构建为库 然后在生成的 so上执行 readelf 而不是 a 我如何在bazel中编写它 以下 BUILD bazel 文件不起作用 cc library name foo srcs foo c genrule nam
  • 将 copts/defines 传播到目标的所有依赖项

    我有一个项目 在一个相当复杂的构建系统中的单个工作空间中涉及多个构建文件 简而言之 我的目标 对于某些特定目标 我希望使用一组额外的属性来构建其所有递归依赖项 copts defines 与以任 何其他方式构建这些依赖项目标时相比 我还没有
  • bazel是否支持不同平台上的远程执行?

    具体来说 我想从 Mac 主机对 Windows 工作线程运行测试 评论在不同的机器上运行 bazel 远程执行器测试 https stackoverflow com questions 44354378 running bazel rem
  • 保存终端 Bazel 构建输出

    是否可以保存在终端中运行的 bazel build 命令的输出 命令是 bazel build tensorflow examples image retraining label image bazel bin tensorflow ex
  • 沙箱中的 Bazel 和 py_test - 有什么方法可以定义输出?

    我正在运行多个py test 项目数量的配置 由于它们数量众多 默认的沙箱机制似乎很方便 测试不会相互干扰 并且免费并行运行 不过 这是有代价的 据我了解 沙箱将导致 bazel 在临时目录中运行测试 结合py test规则未定义任何out
  • 如何使用 bazelisk 安装 bazel

    或者更好的是 如何安装 bazel 我一直使用 cd 进入桌面上的文件夹 然后我使用git clone https github com bazelbuild bazelisk进而 我现在应该做什么 老实说 我没有找到任何真正的说明 我现在
  • 如何在 Windows 10 x64 上使用 Bazel 构建和调试 C++ 可执行文件

    我想使用 bazel 生成的可执行文件来调试 C 代码 但由于某种原因 bazel 不会在 x64 架构上构建代码 或者可执行文件无法在调试模式下工作 我的文件是 main cpp include
  • Bazel远程缓存分析数据

    我正在 jenkins 上的 docker 容器内运行 bazel 通过 bazelisk 此外 我使用远程缓存 在不进行任何更改的后续运行中 我获得 100 的缓存命中 但每次创建新容器时都会运行分析阶段 约 60 秒 有没有办法远程缓存

随机推荐

  • IE7 一段时间后停止发出网络请求

    我们的 asp net 系统是一个更大系统的一部分 它是通过这个更大的系统从 javascript 启动的 该系统执行 window open 调用来打开一个新窗口 此外 身份验证数据等通过加密的查询字符串参数传递到我们的系统 当使用 IE
  • Windows - 使用 perl 监视目录中是否有新文件删除/创建

    寻找一种方法来监视目录中新文件的创建或删除 因此 如果我有一个文件夹 c temp 并且在其中复制 创建了 abc txt 我需要一个事件或其他内容 以便我可以拾取该文件然后处理它 另外 我想持续监控这个文件夹 我怎样才能做到这一点 我正在
  • 使用 AVAudioRecorder 看似随机的文件损坏(有时文件无法播放) - iOS

    在我目前正在开发的应用程序中 我或多或少遇到了障碍 在应用程序中 您可以进入一个视图 该视图在标准表格视图中列出所有本地保存的音频文件 从这里 您可以单击它们来播放它们 或者点击下面的录制按钮来制作新的录音 该录音随后会自动保存到应用程序沙
  • Android:Listview的弹跳到scrollview

    有什么方法可以将ListView的弹跳效果添加到常规滚动视图中吗 我所说的弹跳是指当您到达列表底部时类似橡皮筋的效果 在android中为listview添加效果反弹 Step 1 在com base view包中创建新文件BounceLi
  • 在 vaadin 8 中将文本复制到剪贴板

    我想问如何在 vaadin 8 java web 应用程序中正确地将一些文本复制到剪贴板 我找到了适用于 Chrome 和 IE 的解决方案 但不适用于 Firefox Firefox 总是提示 错误 document execComman
  • JqG​​rid 单元格中的选择框

    我试图让选择框位于特定的单元格中 我的复选框显示得很好 但选择框没有显示 list5 jqGrid datatype local width 100 height 100 colNames Universe1 Connect String1
  • 从更高的时间范围获取历史值

    我构建了一个自定义指标 并使用蜡烛顶部的点绘制了它们 当一个点与另一个点满足特定标准时 我会绘制一条连接它们的趋势线 这样可行 我想做的是从更高的时间范围增加这些线 因为我通常在 5m 上进行交易 意思是 如果每日时间范围内的这些点符合标准
  • jquery加载大数据

    我有一个返回数据的 Web 服务 数据集相当大 可能有 600 行 20 列 在 Jquery 代码中将此数据加载到 html 表中最快最有效的方法是什么 我尝试通过循环返回的数据并在字符串中创建表 DOM 来创建表 html 但循环部分非
  • 遵循 JSON-LD API 中的所有链接

    假设我想使用一个返回 JSON LD 的 API 并跟踪所有链接 我正在尝试Hydra API 演示 http www markus lanthaler com hydra api demo 但它应该适用于所有 JSON LD API 而不
  • ListView 中的 WPF ListView

    我确信我错过了一些简单 明显的东西 但我似乎无法在 ListView 中绑定 ListView 的数据
  • Java 中的 Thread.Sleep 替代方案

    有人告诉我使用Thread Sleep 有时 人们希望在同步方法的操作循环中设置一些时间间隔 这是一个糟糕的解决方案 另一方面 我有两个不同的线程 它们在程序运行期间处于活动状态 还有一个共享对象 当我在该共享对象中使用 Object wa
  • 是否有像 pygccxml 一样的 Python Clang 包装器来包装 GCC-XML?

    很长一段时间以来 我一直在使用 pygccxml 来解析和内省我的 C 源代码 它帮助我在构建过程中进行一些巧妙的代码生成 最近我读了很多关于 LLVM 堆栈的好处 特别是 LLVM Clang 解析器给 C 编译带来的好处 我现在想知道
  • 如何在 Debian 上升级 glibc?

    我听说我可以使用apt get install libc6 但我需要向 etc apt sources list 添加一些内容才能接收最新的 glibc 版本 我应该怎么办 我能够安装libc6 2 17 in Debian Wheezy通
  • 3D饼图:图例太大

    传说的问题太大了 当我改变cex的数量时 字体太小 盒子仍然很大 希望盒子和测试可以搭配 不会太小也不会太大 table lt data frame num c 90 26 28 39 98 countries c India Sri La
  • Parse.com:如何为 Fragment 内的 Parse ListView 添加搜索过滤器

    我正在尝试为选项卡片段内的 ListView 添加搜索过滤器 使用适配器从解析服务器调用数据 我的片段java文件如下 跑车 java import android os Bundle import android text Editabl
  • 如何使 Hibernate @Lock 注释适用于 Oracle DB?

    我偶然发现 Oracle DB 中锁定行的问题 锁的目的是防止多个事务从数据库读取数据 因为这些数据会影响新数据的生成 并且会在事务中发生更改 为了进行锁定 我将 Lock 注释放在 SpringData find 方法上 该方法检索参与事
  • std::vector 中的每个元素访问都是缓存未命中吗?

    据了解std vector将其数据保存在堆上 因此向量本身的实例和第一个元素具有不同的地址 另一方面 std array是原始数组的轻量级包装 其地址等于第一个元素的地址 假设集合的大小足以容纳一个缓存行int32 在我的具有 384kB
  • 在 WebBrowser 控件中检测滚动到底部

    我正在创建一个 Windows 窗体来接受公司的一些条款和条件 因此 条款和条件位于 Web 上 并通过 WebBrowser 控件导航到 WinForm 仅当完整文档滚动到底部后才需要启用 接受 按钮 我正在寻找类似于 VScrollBa
  • 在 Windows Vista/7 下复制到 Program Files

    我用C 编写了一个向导 它将一些文件安装到Windows下的程序文件文件夹中 据我了解 我需要管理员权限才能在 Vista 7 下写入程序文件 所以我的问题是 有没有一种方法可以在应用程序分别运行时仅针对一个向导页面打开管理员权限 或者我是
  • 巴泽尔的$地点扩张

    我想添加 location 扩展到rules scala for jvm flags我在其中设置依赖项的属性data属性 但失败了 label src java com google devtools build lib worker in