在 Play 2.6 上使用 stb-native-packager 和 Debian 和 SystemV
Posted
技术标签:
【中文标题】在 Play 2.6 上使用 stb-native-packager 和 Debian 和 SystemV【英文标题】:Using stb-native-packager with Debian and SystemV on Play 2.6 【发布时间】:2020-07-16 16:54:54 【问题描述】:我已从 Play 升级! 2.6 两人玩! 2,6,但现在我无法部署我的应用程序。
我曾经有过
import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV
serverLoading in Debian := ServerLoader.SystemV
但是现在有插件,所以我添加了它。我以为我使用了 SystemV,但也尝试了 systemd。两者都不会生成它在 2.5 中生成的任何 init.d 脚本。
lazy val knockadoonserver = (project in file(".")).enablePlugins(PlayJava, PlayEbean, DebianPlugin, SystemdPlugin)
我还需要做什么? 我整天都在这个问题上,找不到解决方案。
【问题讨论】:
你在用什么任务?当我运行debian:stage
时,它会在target/<project>-<version>/...
中生成服务文件
我可以确认它现在正在工作。我已经完全重建了我的项目,也许我在改变它的操作之间的某个地方更改了配置参数。我昨天尝试了 Play 中的一个示例项目!而且它也不起作用,所以可能是某个地方的旧版本有问题?
【参考方案1】:
这有点令人困惑,您将新旧 API 混合在一起。
serverloading
设置是旧 API。在较新的版本中,您可以通过 AutoPlugin 启用系统加载类型,这几乎是正确的( Systemd 而不是 SystemV )。
这是文档:https://sbt-native-packager.readthedocs.io/en/latest/archetypes/systemloaders.html#systemv
干杯, 渚
【讨论】:
我不知道具体原因,但它开始起作用了。现在 SBT 开始说: [IJ]sbt:knockadoon> debian:packageBin [error] 没有这样的设置/任务 [error] debian:packageBin [error] 但它仍然可以在 activator 中工作,所以目前已经足够了。我将注释掉过时的行,看看下一次部署是否还可以,当时我正在尝试不同的设置组合。以上是关于在 Play 2.6 上使用 stb-native-packager 和 Debian 和 SystemV的主要内容,如果未能解决你的问题,请参考以下文章
将 Play 框架中的 WebSockets 从 2.4 版转换为 2.6 版
如何在 Play 2.6 控制器中使“CustomExecutionContext”可用于依赖注入?
为 play framework 2.6 配置的默认控制器包在哪里?