我有一个java测试我正在尝试使用沙盒,它有点复杂的下载逻辑
我正在考虑编写一个存储库规则,它将使用repository_ctx.execute
启动一个java应用程序来运行这个逻辑而不是在skylark中复制它。
我该如何获得此通话的内容?
我可以传递java app一个路径/文件名来下载文件,但后来我不确定给它的路径。我可以将字节打印到stdout并通过exec_result收集它们(听起来很可怕)。
答案 0 :(得分:1)
您可以使用返回repository_ctx.path("path/to/file")
的path来获取相对于生成的工作区的路径,然后使用path.realpath
您可以获得输出的规范名称。
收集exec_result的输出以用作文件输入应该可以工作,但它从未尝试过我的知识,所以可能会发生奇怪的编码问题。