【问题标题】:command line options in sbt native packagersbt native packager 中的命令行选项
【发布时间】:2016-09-28 18:10:42
【问题描述】:

当你使用 sbt-native-packager 插件在 sbt 中打包一个命令行应用程序时,你会得到一个包含额外命令行选项的包装脚本,看起来像这样。

  -h | -help         print this message
  -v | -verbose      this runner is chattier
  -d | -debug        set sbt log level to debug
  -no-version-check  Don't run the java version check.
  -mem <integer>     set memory options in MB (default: , which is -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m)
  -jvm-debug <port>  Turn on JVM debugging, open at the given port.

  # java version (default: java from PATH, currently java version "1.7.0_21")
  -java-home <path>         alternate JAVA_HOME

  # jvm options and output control
  JAVA_OPTS          environment variable, if unset uses ""
  -Dkey=val          pass -Dkey=val directly to the java runtime
  -J-X               pass option -X directly to the java runtime
                     (-J is stripped)

  # special option
  --                 To stop parsing built-in commands from the rest of the command-line.
                     e.g.) enabling debug and sending -d as app argument
                     $ ./start-script -d -- -d

是否可以选择性地禁用其中一些选项或从打包的应用程序中将它们全部删除?

【问题讨论】:

标签: sbt sbt-native-packager


【解决方案1】:

对于 bash 脚本,您可以将其添加到您的 sbt 配置中:

bashScriptExtraDefines += """set -- -- "$@""""

这有效地将-- 添加到传入的命令行参数中,包装器将使用该参数。包装器会在前面加上 --

之后传递所有内容

【讨论】:

    【解决方案2】:

    首先,没有办法禁用单个命令行选项。但是你可以做一些其他的事情。

    1. 正如 Shyam 正确提到的,您可以 override the start script
    2. 第二个选项是使用 -- 分隔符。之前的所有内容都将由脚本解析,之后的所有内容都作为应用程序命令行附加。

    如果您有可能对一般可用性感兴趣的用例,您可以提出功能请求。

    干杯, 渚

    【讨论】:

    • 谢谢@muki 我会尝试第一个选项。我知道第二个,但对于用户不必知道存在两步命令行解析的可分发应用程序来说这是很不自然的
    【解决方案3】:

    您可以通过将 -- 附加到 java 选项来完全独立于平台禁用所有它们:

    javaOptions in Universal += "--"
    

    这必须是最后一个 java 选项,以便在您设置您可能已经拥有的任何自定义 java 选项后注入它。显然这很 hacky,因为 -- 并不是真正的 java 选项,但目前 native-packager 不会检查它。

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 2015-03-31
      • 2018-10-01
      • 2016-09-09
      • 2013-12-29
      • 2017-11-13
      • 2015-10-03
      • 2016-07-27
      • 2015-10-11
      相关资源
      最近更新 更多