Bazel 存储库规则 - 下载 repository_ctx.execute 中的文件
Bazel repository rule- downloading a file in repository_ctx.execute
我有一个 java 测试,我正在尝试沙盒,它执行一些复杂的下载逻辑。
我正在考虑编写一个存储库规则,它将使用 repository_ctx.execute
到 运行 这个逻辑来启动一个 java 应用程序,而不是在 skylark 中复制它。
如何获取本次调用的内容?
我可以通过 java 应用程序 path/filename 将文件下载到,但我不确定要给它什么路径。我也许可以将字节打印到标准输出并通过 exec_result 收集它们(听起来很糟糕)。
您可以使用 repository_ctx.path("path/to/file")
that returns a path 获取相对于生成的工作区的路径,然后使用 path.realpath
您可以获得输出的规范名称。
收集 exec_result 的输出用作文件输入应该可行,但据我所知从未尝试过,因此可能会发生奇怪的编码问题。
我有一个 java 测试,我正在尝试沙盒,它执行一些复杂的下载逻辑。
我正在考虑编写一个存储库规则,它将使用 repository_ctx.execute
到 运行 这个逻辑来启动一个 java 应用程序,而不是在 skylark 中复制它。
如何获取本次调用的内容?
我可以通过 java 应用程序 path/filename 将文件下载到,但我不确定要给它什么路径。我也许可以将字节打印到标准输出并通过 exec_result 收集它们(听起来很糟糕)。
您可以使用 repository_ctx.path("path/to/file")
that returns a path 获取相对于生成的工作区的路径,然后使用 path.realpath
您可以获得输出的规范名称。
收集 exec_result 的输出用作文件输入应该可行,但据我所知从未尝试过,因此可能会发生奇怪的编码问题。