将 JVM Opts 从 build.sbt 传递到 Play Framework 2.2.x 中的启动脚本
Posted
技术标签:
【中文标题】将 JVM Opts 从 build.sbt 传递到 Play Framework 2.2.x 中的启动脚本【英文标题】:Pass JVM Opts from build.sbt to startup script in Play Framework 2.2.x 【发布时间】:2015-03-12 12:18:48 【问题描述】:是否有可能将 JVM 选项(即 javaagent)从 build.sbt 配置/传递到阶段构建 - 以供生成的启动脚本使用。
【问题讨论】:
【参考方案1】:如果您指的是 sbt-native-packager 生成的启动脚本,当使用 JavaAppPackaging 或 JavaServerPackaging 原型时,您可以使用 SBT 设置 bashScriptExtraDefines
修改它
见http://www.scala-sbt.org/sbt-native-packager/archetypes/cheatsheet.html?highlight=bashscriptextradefines#overriding-templates
您可以使用许多已在 bash 启动脚本中定义的函数和变量。 addJava
将标志添加到 java 二进制文件。 addApp
将标志添加到传递给正在运行的 Java 应用程序的参数中。 app_home
指向包含启动脚本的目录。
一个示例(假设您已通过mappings
设置将newrelic.jar
文件提供给暂存环境):
bashScriptExtraDefines += """addJava "-javaagent:$app_home/../newrelic/newrelic.jar""""
或者
bashScriptExtraDefines += "addApp -Dhttps.port=9001"
【讨论】:
如果它对任何人都有帮助,这种bashScriptExtraDefines
技术在打包为 Docker 映像时也适用。【参考方案2】:
这应该可以在你的 .sbt 文件中使用
javaOptions += "-Xmx2G"
完整文档:http://www.scala-sbt.org/0.13.1/docs/Examples/Quick-Configuration-Examples.html
【讨论】:
以上是关于将 JVM Opts 从 build.sbt 传递到 Play Framework 2.2.x 中的启动脚本的主要内容,如果未能解决你的问题,请参考以下文章
似乎无法在 SBT 中的分叉 JVM 中运行 Play 应用程序
使用 sbt-spark-package 插件了解 build.sbt
在 Play 2.3 的 build.sbt 中应该如何定义 routesImport?