使用 init.d 执行时如何在 Spring 引导项目中指定 JVM 参数

How to specify JVM Parameters inside Spring Boot Project when executed with init.d

我有一个 Spring 引导项目,我是 运行 作为可执行 jar 作为 Linux 上的 init.d 服务启动的项目。

我知道我可以创建一个与 jar 文件同名的 .conf 文件来指定 JVM 参数。但是,理想情况下,我希望 "hard code" 一些参数,这样就不会有丢失 .conf 文件的风险。这是一个真正的风险,因为每个部署都会因为版本号而有不同的 jar 名称。

我也知道我可以设置环境变量 JAVA_OPTS,但如果我启动 Spring 作为 init.d 服务启动,我不确定该怎么做使用指向 jar 文件的符号链接。

最后我知道我可以使用 embeddedLaunchScript 参数完全替换 init.d 脚本,但是对于我想要完成的事情,我觉得这个矫枉过正,并希望在进一步的版本中更新脚本。

有没有办法在 Maven 插件或其他编程方法中指定 JVM 参数?

或者有没有办法对静态 CONF 文件名进行硬编码?查看 embeddedLaunchScriptProperties 看起来 confFolder 可以是文件夹,但不是 .conf 文件的名称。

从Spring boot 2.0 开始,您可以设置构建插件的inlinedConfScript 属性。您现在可以在应用程序启动前引用包含附加或覆盖 JAVA_OPTS 变量的文件。可以在 Spring Documentation.

中找到更多详细信息