Sbt 本机打包程序不创建服务脚本文件

Posted

技术标签:

【中文标题】Sbt 本机打包程序不创建服务脚本文件【英文标题】:Sbt native packager doesn't create service script file 【发布时间】:2018-11-05 00:37:51 【问题描述】:

我使用原生打包器将 play api 部署为 RPM 包。创建的包缺少/etc/init.d/ 文件夹和脚本。

我该如何调试这种情况?

这是来自 build.sbt 的摘录:

lazy val myApp = (project in file("api"))
  .enablePlugins(PlayScala, RpmDeployPlugin, SonarPlugin)
  .configs(IntegrationTest)
  .settings(  
    organization := "com.organization",
    scalaVersion := "2.11.12"
    ...)
  libraryDependencies ++= Seq( etc...)

【问题讨论】:

你有多个主类吗?如果是,请尝试指定一个类似mainClass in Compile := ... 其实是一个多项目App,里面有一个play框架项目。你知道如何为 PlayFramework 定义 mainClass 吗? 【参考方案1】:

我遇到的问题是我缺少SystemVpluginRpmDeployPlugin(我只使用了RpmPlugin

lazy val `my-api` = (project in file("my-api"))
  .enablePlugins(PlayScala, RpmDeployPlugin, SystemVPlugin)
  ...

【讨论】:

以上是关于Sbt 本机打包程序不创建服务脚本文件的主要内容,如果未能解决你的问题,请参考以下文章

SBT Native Packager SystemVLoader 不生成 SystemLoader 脚本

SBT 本机打包程序不会将文件复制到 Docker 映像

如何使用具有多种主要方法的项目中的本机打包程序创建 RPM?

ASP.NET - 脚本和 css 压缩

Sbt 本机打包程序找不到 SystemdPlugin

sbt 原生打包器 dockerCommands 复制