【发布时间】:2016-12-27 12:47:07
【问题描述】:
我有一个 scala SBT 项目,我在其中使用本机打包程序插件。我捆绑为JavaServerAppPackaging 并希望生成脚本,以便使用rc.d 脚本(Amazon Linux)自动注册应用程序以进行启动和关闭。
在我的 plugins.sbt 中:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M5")
在 build.sbt
lazy val server =
DefProject("some/server", "server")
.settings(serverModuleDeps)
.settings(ServerSettings.allSettings: _*)
.settings(CloudFormation.defaultSettings: _*)
.settings(serverLoading in Universal := Option(ServerLoader.SystemV))
.settings(serviceAutostart:=true)
.settings(startRunlevels:=Option("3"))
.settings(stopRunlevels:=Option("3"))
.settings(stackRegion := "US_WEST_2")
.settings(codedeployAWSCredentialsProvider := Option(new ProfileCredentialsProvider("devcredentialsprovider")))
.dependsOn(sharedJvm)
.dependsOn(langJVM)
.enablePlugins(JavaServerAppPackaging, SystemVPlugin)
.settings(daemonUser:="ec2-user")
.configure(InBrowserTesting.jvm)
当我运行sbt stage 时,我可以看到一个universal 文件夹,其中包含一个bin 文件夹,其中包含一个用于启动应用程序的sh 和一个cmd 文件。但是,没有将应用程序注册/启动为系统服务的代码。是否需要任何其他配置才能让插件生成用于注册应用程序的脚本?我错过了什么?
我创建了一个基本项目来演示该问题:https://github.com/MojoJojo/sbt-native-packager-test
【问题讨论】:
-
如果你想创建一个 debian 包你应该运行
debian:packageBin命令。
标签: scala sbt sbt-native-packager