最近 Heroku 官方博客发布声明已经支持Scala语言《Scala now runs on Heroku》,本文就带领大家熟悉一下Scala App的开发流程。
目前有两种开发部署方式可供选择,一种类似《Heroku 上的 Java 程序设计》,采用Maven管理,另一种是利用 sbt (the Scala Build Tool) 去开发部署,本文以第二种方式来进行介绍。关于Heroku的详细介绍和本地的开发环境安装,请参照博文《Heroku 上的 Java 程序设计》,本文只对不同的地方做具体说明。
Heroku = Polyglot + Platform as a Service (PaaS) + Cloud Components
开发步骤
- 安装 Scala 开发工具 sbt(win7的环境我已经写好了配置文件,直接下载到工程目录中即可win7_sdt)
- 登录 Heroku :
heroku auth:login
- 创建一个新工程目录,例如careyscala,目录中新建文件 careyscala/build.sbt, 内容如下:
scalaVersion := "2.9.1" { val stage = TaskKey[Unit]("stage", "Prepares the project to be run, in environments that deploy source trees rather than packages.") stage in Compile := {} }
为Heroku添加一个新的 “stage” task.
- 建立编译配置文件 careyscala/project/build.properties ,用来指明sdt的版本,具体内容如下:
sbt.version=0.11.0
- 建立 Scala app 源代码文件 src/main/scala/Hello.scala ,具体内容如下:
object Hello extends App { println("hello, Carey") }
- 本地运行测试 app :
sbt run
程序输出,第一次运行比较慢,要耐心等待...需要从网上下载依赖包:
[info] Set current project to default-bb7250 (in build file:/E:/Program%20Files/ Heroku/work/careyscala/) [info] Updating {file:/E:/Program%20Files/Heroku/work/careyscala/}default-bb7250 ... [info] Done updating. [info] Compiling 1 Scala source to E:Program FilesHerokuworkcareyscalatarge tscala-2.9.1classes... [info] Running Hello hello, Carey [success] Total time: 6 s, completed 2011-10-4 19:55:56
- 建立git配置文件 .gitignore ,具体内容如下:
target project/boot project/target
- 建立 git repo, 添加文件并commit:
git init git add build.sbt project/build.properties src git commit -m init
- 在 Heroku 服务端新建一个App:
heroku create -s cedar
- 上传 Scala app 到 Heroku 服务器:
git push heroku master
- Heroku服务器端运行APP:
heroku run "sbt run"
哈哈,是不是看到期待的结果了
一切都是如此简单,通过这个Demo,相信大家已经熟悉了在Heroku上面开发和部署Scala App的基本流程了,接下来发挥你的创造力吧,如果有什么建议或问题的话,请联系我,官方开发论坛里面包含了好多宝贝,自己发掘吧!