Scala Play框架Web应用程序托管流程

时间:2016-02-26 07:27:29

标签: scala playframework web-hosting

我正在使用scala和play框架在web项目中工作。我担心应用程序部署部分。我需要在Glass fish服务器上托管我的应用程序。所以任何人都有这方面的经验?我有托管javaEE应用程序的经验,将.war文件上传到服务器。但是我怎么能像这样主持播放应用呢? 我已经参考了以下文章并构建了dist。 Production Dist

如果有人可以一步一步地给我说明,我很容易理解。感谢

1 个答案:

答案 0 :(得分:7)

推荐的Play游戏方式!生产中的应用程序是以独立模式运行,而不是在应用程序服务器环境中运行。有些插件可以为您构建* .war文件,但是,如果您喜欢这种方式,那么就是这样。特别是,请看一下这个:https://github.com/play2war/play2-war-plugin

我仍然建议您进行推荐的独立部署。我们对sbt-native-packager SBT插件有很好的体验。它可以构建debrpm文件,并支持System V或Upstart启动脚本。有关Play! Production page的更多信息。

要使用sbt-native-packager,您需要先将其添加到project/plugins.sbt文件中。就像这样:addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.0-RC2")

然后在build.sbt中,您必须配置包的必要属性,如上面链接的Production页面所述。我将在此处复制该页面的部分配置。让我们说,您将使用rpm格式在CentOS上部署。您需要在build.sbt

中添加内容
lazy val root = (project in file("."))
  .enablePlugins(PlayScala, RpmPlugin)

maintainer in Linux := "First Lastname <first.last@example.com>"

packageSummary in Linux := "My custom package summary"

packageDescription := "My longer package description"

rpmRelease := "1"

rpmVendor := "example.com"

rpmUrl := Some("http://github.com/example/server")

rpmLicense := Some("Apache v2")

然后从命令行启动sbt并执行以下命令:rpm:packageBin。它将构建您的应用并创建rpm文件,该文件将被放置并命名为:./target/rpm/RPMS/noarch/your-application-name.noarch.rpm

从那里开始,您可以像往常一样部署和启动标准rpm