执行gradle应用程序插件的installDist
任务创建一个目录build/install/<em>my-application-name</em>/bin
包含包装器脚本, my-application-name
和 <em>my-application-name</em>.bat
。运行这些脚本中的任何一个都会运行应用程序,并且传递给这些脚本的参数将传递给底层应用程序。
在 UNIX shell 脚本中,您可以访问用于执行程序的名称 $0
。事实上,UNIX版本的gradle生成的启动脚本使用 $0
多次。
如何配置 gradle 应用程序插件,以便这些脚本将传递 $0
的值(以及 Windows 上的任何 Windows 等效项)到底层应用程序中,也许作为 Java 系统属性?
最佳答案
由于用于获取正在运行的脚本名称的参数在 Linux($0
) 和 Windows(%0
) 中的引用方式不同,因此最直接的生成方法自定义脚本将针对各自的start script generators使用单独的自定义模板。 :
startScripts {
unixStartScriptGenerator.template = resources.text.fromFile('unixStartScript.txt')
windowsStartScriptGenerator.template = resources.text.fromFile('windowsStartScript.txt')
}
默认模板很容易通过调用获得,例如unixStartScriptGenerator.template.asString()
可以找到有关自定义启动脚本的文档 here .
关于java - 在gradle的应用程序插件生成的启动脚本中,如何将程序名称传递给应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307027/