【问题标题】:Bazel run - passing main argumentsBazel run - 传递主要参数
【发布时间】:2019-01-14 03:15:14
【问题描述】:

我使用 java_image 创建了一个图像,但我想将参数传递给我的主函数(即 String args[])。当我使用“bazel run name_of_image”命令时,我该怎么做?

【问题讨论】:

    标签: bazel


    【解决方案1】:

    bazel run //your:rule -- arg1 arg2 ... argN

    -- 之后的所有内容都传递给二进制文件。

    【讨论】:

    • 感谢您的回复。这适用于使用 java_image 吗?我的意思是我是否需要在规则本身中设置任何内容来支持 args?
    • 这个微妙之处也值得注意:--bazel run 下的角色与在bazel test 下的角色不同。对于 bazel 测试并构建 -- 右侧的所有内容作为 目标模式 docs.bazel.build/versions/main/command-line-reference.html
    【解决方案2】:

    当使用java_image 时,bazel run //my_image 只会将镜像加载到 Docker 守护进程中,它不会运行它。要运行它,您应该使用:

    docker run bazel/my_image:my_image [args]
    

    【讨论】:

    • 实际上,当我使用 bazel run 时,它会编译并运行它。
    • 如果它运行图像,它还应该使用您指定的参数(根据 László 的回答)。似乎我被一个错误弄糊涂了:根据base 属性的值,bazel run 可能会或可能不会在加载后运行 Docker 映像。
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2019-05-01
    • 2018-12-29
    • 2017-01-12
    相关资源
    最近更新 更多