我正在使用scala和play框架在web项目中工作。我担心应用程序部署部分。我需要在Glass fish服务器上托管我的应用程序。所以任何人都有这方面的经验?我有托管javaEE应用程序的经验,将.war文件上传到服务器。但是我怎么能像这样主持播放应用呢? 我已经参考了以下文章并构建了dist。 Production Dist
如果有人可以一步一步地给我说明,我很容易理解。感谢
答案 0 :(得分:7)
推荐的Play游戏方式!生产中的应用程序是以独立模式运行,而不是在应用程序服务器环境中运行。有些插件可以为您构建* .war文件,但是,如果您喜欢这种方式,那么就是这样。特别是,请看一下这个:https://github.com/play2war/play2-war-plugin
我仍然建议您进行推荐的独立部署。我们对sbt-native-packager SBT插件有很好的体验。它可以构建deb
和rpm
文件,并支持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
。