Info

Posts from the Scala Category

今日はPlayと遊んでみた。

1. Playインストール
http://www.playframework.org/
で最新版ダウンロード
適当などころに解凍してパスを通す

2. プロジェクト作成

$ play new playhub
$ run

3. heroku app 作成

$ heroku create -s cedar playhub
$ git init
$ git remote add heroku git@heroku.com:playhub.git
$ git add .
$ git commit -m init
$ git push heroku master

$ heroku open

ページが表示されてることを確認

4. プロジェクトをeclipseで開発できるようにする

$ play
[playhub] $ eclipse[info] About to create Eclipse project files for your project(s).
[info] Compiling 1 Scala source to /Users/dongriab/Desktop/playhub/target/scala-2.9.1/classes...
[info] Successfully created Eclipse project files for project(s): playhub
[playhub] $

5. eclipseからインポート

6. ScalaTodoList
http://www.playframework.org/documentation/2.0.2/ScalaTodoList
ここに書いてある通りにやるけど、どうもherokuでのpostgresqlが気に入らなくて、mysqlにしてみる。
Persist the tasks in a database
herokuでaddonのcleardbを追加。

$ heroku addons:add cleardb:ignite
$ heroku addons
cleardb:ignite
shared-database:5mb
$ heroku config

CLEARDB_DATABASE_URL確認
DATABASE_URL に postgresが書いてあるがそれをmysqlに変更

$ heroku config:add DATABASE_URL=mysql://********:*********@us-cdbr-east.cleardb.com/heroku_*******?reconnect=true

conf/application.confファイル編集

db.default=mysql
db.default.url="jdbc:mysql://us-cdbr-east.cleardb.com/heroku_***?useUnicode=true&characterEncoding=UTF8"
db.default.driver=com.mysql.jdbc.Driver
db.default.user=******
db.default.password=******
db.default.partitionCount=1
db.default.maxConnectionsPerPartition=5
db.default.minConnectionsPerPartition=5
db.default.minSize=1
db.default.maxSize=9

途中でconnectionエラーとかいろいろあったけどコピーするの忘れた。

最近Scalaに興味を持つようになって、ちょっと勉強しようかと思ってherokuに hello world的なものを作ってみた。手順をメモ。
herokuに関しては割愛。

1. scala のインストール

$ brew search scala
scala      scalate
$ brew install scala
==> Downloading http://www.scala-lang.org/downloads/distrib/files/scala-2.9.1-1.tgz
・・・
$ scala -version
Scala code runner version 2.9.1-1 -- Copyright 2002-2011, LAMP/EPFL

2. sbt インストール

$ brew install sbt

3. scala on heroku
https://devcenter.heroku.com/articles/scala
ここに書いてある通りにやる。
と、とりあえずheroku上で 「Hello from Scala!」はできた。
しかし、rubyでもないしメモ帳でscala書くちょっとあれなんでeclipseに入れてみる。
そのまま入れるとsbtのbuild.sbtで定義した依存パッケージがeclipseのビルドパスに反映されない。

4. sbtelipseを入れる
~/.sbt/pluginsにplugin.sbtを作成

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.0.0")

5. eclipse設定
プロジェクトディレクトリまで行って

$ sbt
> eclipse

参照ライブラリに依存パッケージが反映される。

6. sbtでrunしてみる

$ sbt
$ run
[error] {file:/Users/dongriab/Dropbox/Developers/cloud/heroku/workspace/scalahub/}default-2648c8/compile:run: Nonzero exit code: 1
[error] Total time: 15 s, completed Jul 14, 2012 7:06:17 PM
> run
[info] Compiling 1 Scala source to /Users/dongriab/Dropbox/Developers/cloud/heroku/workspace/scalahub/target/scala-2.8.1/classes...
[error] java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
[error] Use 'last' for the full log.

OutOfMemoryErrorが発生。
sbt起動する時にjavaヒープサイズを1024mに設定して起動

$ env JAVA_OPTS="-Xmx1024m" sbt
> run
[info] Running Web debug
Starting on port:8080
Start

問題なく起動できた。
以上で、eclipseでscala, herokuの開発できるようなった。

追加:ソース編集してサーバー再起動しないと反映されない。デバッグ方法わかる方教えてください