折腾了两天,终于折腾出来了,记录下
参考:
https://www.playframework.com/documentation/2.6.x/Home
https://www.playframework.com/documentation/2.6.x/ProductionHeroku
https://devcenter.heroku.com/articles/heroku-cli
https://devcenter.heroku.com/articles/deploying-scala-and-play-applications-with-the-heroku-sbt-plugin#adding-the-plugin
Mac OS 10.12.6
playframework 2.6.x
1、下载并解压
Play 2.6.x Starter Projects
2、打开shell窗口,输入sudo su ,进入系统管理员环境
3、进入1、的解压目录 ,输入 ./sbt ;第一次时,这个过程可能会很漫长,需要请求网络下载依赖包,初始化sbt的构建环境。
若提示没有权限执行,可能需要修改sbt脚本的文件权限设置 chmod 777
4、执行run ,在本机浏览器访问 http://localhost:9000 ,应该可以看到正确的页面。在部署时,这个步骤可以忽略
5、配置应用程序密钥(application secret),部署到生产环境,必须配置。
playGenerateSecret
将生成的密钥写入到conf/application.conf文件中,添加一行或替换已有的"chanename"
play.http.secret.key="xbKIX>^nA[r3dXB8gIhLO5N8iy7XxlEyQ;MXVo8l_zDJiEmA_ER]hsM6t8kbY@3R"
注意,这个值不能为空,也不能是changename,否则则生成环境运行,play会抛出异常,主动结束应用
6、如果没有Heroku账号,则先创建一个(创建时需要翻墙)。下面的步骤都是假设已有Heroku账号
安装Heroku的Command Line Interface 环境
brew install heroku/brew/heroku
或者直接在https://devcenter.heroku.com/articles/heroku-cli下载对应Mac OS的安装包
7、设置依赖 Heroku sbt plugin 依赖
在project/plugins.sbt 文件中,添加一行
addSbtPlugin("com.heroku" % "sbt-heroku" % "2.0.0")
8、登录Heroku,创建一个应用
heroku login
heroku create -n
将应用名字配置在play的配置文件中。在build.sbt中添加一行
herokuAppName in Compile := "polar-coast-90592"
8、执行部署
./sbt stage deployHeroku
用浏览器访问https://polar-coast-90592.herokuapp.com/ 看看效果
Bad Request
For request 'GET /' [Host not allowed: polar-coast-90592.herokuapp.com]
配置还要修改,修改conf/application.conf 里面的
play.filters 的hosts节点, 设置 allowed = [".herokuapp.com"]
重新部署下 ./sbt stage deployHeroku