Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bazel运行java_测试时使用java.io.tmpdir 动机:_Java_Scala_Continuous Integration_Bazel - Fatal编程技术网

使用bazel运行java_测试时使用java.io.tmpdir 动机:

使用bazel运行java_测试时使用java.io.tmpdir 动机:,java,scala,continuous-integration,bazel,Java,Scala,Continuous Integration,Bazel,我有一个测试需要写一个shorttemp文件(必须

我有一个测试需要写一个shorttemp文件(必须<107个字符)。 目前该测试正在使用

Files.createTempFile(null,".sock");

问题 跑步的时候 在使用bazel运行java测试时,我试图找出
java.io.tmp
值。我的不同选择是:

  • 设置
    $TEST\u TMPDIR
    (或不设置)
  • 使用
    “local”=True
    (或不使用)
结果如下:

# local=True + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/1638063256753562848.sock

# local=False + TEST_TMPDIR=/btmp:
/btmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/5561433121200492142/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4867903879018296623.sock

# local=True , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/984443110479498941.sock

# local=False , no TEST_TMPDIR:
/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/bazel-sandbox/6199384508952843116/execroot/__main__/_tmp/8be6e61521c57d3cfc8585efa880e1ac/4588114364301475150.sock
似乎我能得到的最短临时前缀是:

/private/var/tmp/_bazel_ors/719f891d5db9fd5e73ade25b0c847fd1/execroot/__main__/_tmp/
这是85char长(对我的需求来说太长了)

如何安全地使用此配置并使其更短?


注:
我的env是mac osx sierra,我正在运行bazel
0.5.1
可通过将其添加到测试目标的
jvm_标志
中来解决:

"jvm_flags" = ["-Djava.io.tmpdir=/tmp"],

但是请注意,通过将其添加到测试目标的
jvm\u标志
,它将使测试不那么封闭

"jvm_flags" = ["-Djava.io.tmpdir=/tmp"],

但是请注意,它会使测试不那么封闭

您还可以告诉bazel它应该在哪里存储其输出
--output\u base=/tmp/foo

您还可以告诉bazel它应该在哪里存储其输出
--output\u base=/tmp/foo