bazel - 确定文件是否是任何包的一部分
问题描述
鉴于我有一个文件列表,例如foo/src/main.cpp, foo/src/bar.cpp, foo/README.md
是否可以确定哪些文件是 bazel 包的一部分?在我的示例中,输出将是例如,foo/src/main.cpp, foo/src/bar.cpp
因为 README.md 不会是构建的一部分。
做到这一点的一种方法是调用bazel query
每个文件并查看它是否会产生输出,但这非常低效,所以我想知道是否有更简单的方法。
背景:我正在尝试确定一组文件中的更改是否会对目标产生影响,并且我想使用它,但是如果其中的任何文件不是 BUILD 文件的一部分,bazel query somepath(//some/target, set($FILES))
这将失败。$FILES
解决方案
如何翻转它并查询目标的所有源文件:
bazel query 'kind("source file", deps(//some:target))'
然后检查结果是否有集合中的任何文件
推荐阅读
- css - 上移按钮以选择旁边
- javascript - 根据 Angulajs 中的无线电选择更改变量
- c# - 需要帮助从 C# 诊断 SQL Server 奇怪的查询超时
- ios - Unity3d IOS 应用程序:使用 Application.OpenURL 打开第三方应用程序时出错
- angular - 在 Angular 7 中将数据解析为 in-memory-web-api
- java - 代理身份验证器对 HTTP 但不是 HTTPS 进行验证。为什么?
- python - Python中gevent.sleep()和time.sleep()的区别
- excel - 多个 if 中的多个目标,取决于另一个 VBA
- c# - 按钮触发事件不适用于边框?
- protractor - 如何解决“已断开连接,因为 10000 毫秒内没有消息。” 尝试运行业力单元测试时出错?