对于cc_binary(或py_binary,sh_binary),bazel何时创建其runfiles目录并正确设置所有符号链接?
我尝试编写自定义规则,将cc_binary的runfiles目录中的内容打包到tarball中。此自定义规则将cc_binary及其运行文件中的所有目标作为输入。如果在构建cc_binary之后正确设置了runfiles目录,那么我只需要直接打包该目录。如果没有,我可能需要在我的自定义规则中自己设置一个tmp runfiles目录。
此外,这种行为是否可以保留在将来的版本中?
非常感谢!
答案 0 :(得分:2)
Bazel不保证任何订购;所有它保证的是,在构建结束时,二进制文件和runfiles树都应该在那里。
如果您希望在构建这两个操作后执行操作,则需要依赖二进制文件及其runfiles manifest
。但是,这并不能保证运行文件树将在包装操作规则的沙箱中。
我认为它可能会制作@Override
protected Void doInBackground(String... strings) {
String JSPN_Request = "";
String response = "";
URL url = null;
JSONObject jsonObject = null;
HttpURLConnection conn = null;
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
try
{
url = new URL(strings[0]);
jsonObject = new JSONObject();
jsonObject.put("userId",102);
jsonObject.put("id",102);
jsonObject.put("title","hello world");
jsonObject.put("body","hello world");
conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
outputStreamWriter = new OutputStreamWriter(os);
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(jsonObject.toString());
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
conn.setDoInput(true);
BufferedReader reader = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line);
break;
}
reader.close();
response = sb.toString().toString();
}catch (Exception e)
{
Log.d(TAG, "----------------------------------json-error----------------------------------");
Log.d(TAG, "POSTING ERROR" + e);
Log.d(TAG, "----------------------------------json-error----------------------------------");
}}
和ctx.actions.run(input_manifests=)
这样做的东西,尽管它目前非常神秘。 / p>