2016-05-30 1 views
0

При упаковке приложения командной строки в sbt с использованием плагина sbt-native-packager вы получаете сценарий оболочки, который имеет дополнительные параметры командной строки, которые выглядят примерно так.Параметры командной строки в sbt native packager

-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 

Возможно ли выборочно отключить некоторые из этих параметров или удалить их вместе из упакованного приложения ?.

+1

Возможно, вы ищете способ настройки шаблона сценария: http://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize. html # start-script-customizations – Shyam

+0

Спасибо @shyam, я посмотрю эту опцию. –

ответ

0

Прежде всего, нет никакого способа отключить опции одной командной строки. Однако вы можете сделать несколько других вещей.

  1. Как Shyam упоминалось правильно, вы можете override the start script
  2. Второй вариант будет использовать - разделитель. Все, что до этого будет проанализировано скриптом, все после того, как оно будет добавлено в виде командных строк приложения.

Если у вас есть прецедент, который может представлять интерес для общей доступности, вы можете открыть запрос функции.

веселит, MUKI

+0

Спасибо @muki Я попробую первый вариант. Я знаю о втором, но это довольно непривычно для распространяемых приложений, где пользователям не нужно знать о существовании двухэтапного разбора командной строки –

0

Для сценария Баша, вы можете добавить к вашей SBT конфигурации:

bashScriptExtraDefines += """set -- -- "[email protected]""""

это эффективно присоединяет -- к переданным в качестве аргументов командной строки, которая будет потребляется оболочкой. Затем оболочка проходит через все после этого. --