我试图将命令行参数附加到sbt native packager生成的标准脚本中,但我不知道如何获得阅读文档后想要的行为。
基本上,我想在我的
applicaiton.ini
文件
-server
-J-Xms256m
-J-Xmx512m
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=1616
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=$(getIpAddress)
目前一切正常,但您可能已经注意到
$(getIpAddress)
。我希望从将在主机上运行的函数中在此处指定一个值。
我可以添加函数
getIpAddress
到脚本模板,使用:
bashScriptExtraDefines ++=
IO.readLines(sourceDirectory.value / "scripts" / "find_ip.sh")
因此,将内容附加到runner脚本中,如下所示:
getIpAddress() {
echo 10.0.1.23 . # impl snipped for brevity
}
# java_cmd is overrode in process_args when -java-home is used
declare java_cmd=$(get_java_cmd)
# if configuration files exist, prepend their contents to $@ so it can be processed by this runner
[[ -f "$script_conf_file" ]] && set -- $(loadConfigFile "$script_conf_file") "$@"
run "$@"
这个
set -- $(loadConfigFile "$script_conf_file") "$@"
bit正在用我的
application.ini
但它不会评估功能。
因此,我得到了java命令的前置内容
--
但是我
不知道我能不能让它评估一下
$(getIpAddress)
。当我执行脚本时,输出如下所示,表明它没有调用函数。我需要这里的解析值。
$ ./my-app -v
# Executing command line:
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java
-Xms256m
-Xmx512m
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=1616
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=$(getIpAddress)
-cp
/Users/toby/my-app.jar
my.app.Main
-serve
是否有其他方法可以实现同样的效果——向生成的脚本添加更多“动态”值?我的bash命令是否有误?:'(