sbt native packager中的命令行选项

时间:2016-05-30 21:09:01

标签: sbt sbt-native-packager

当您使用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

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

3 个答案:

答案 0 :(得分:0)

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

  1. 正如Shyam所说,你可以override the start script
  2. 第二个选项是使用 - 分隔符。之前的所有内容都将由脚本解析,之后的所有内容都将作为应用程序命令行附加。
  3. 如果您有可能对一般可用性感兴趣的用例,则可以打开功能请求。

    欢呼声, 缪奇

答案 1 :(得分:0)

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

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

这有效地将--添加到传入的命令行参数中,这些参数将由包装器使用。然后,包装器会在此前置--

之后传递所有内容

答案 2 :(得分:0)

您可以通过在Java选项后面附加--来完全禁用所有它们,而完全不依赖于平台:

javaOptions in Universal += "--"

这必须是最后一个Java选项,以便在您设置可能已有的任何自定义Java选项后将其注入。显然,这很不客气,因为--并不是真的Java选项,但是当前native-packager不会检查它是不是。