Lift 2.0-scala280-SNAPSHOT/sbt0.7.1

scala2.8 + sbt0.7.1 + lift-2.0-scala280-SNAPSHOT への移行を試したら、普通に動きました。

LiftwebのScala2.8対応版が未だSnapshotしかでていませんが(というか、未だScala2.8が正式リリースされませんが)、次のように試すことができます。

mvn archetype:generate -U -DarchetypeGroupId=net.liftweb \
 -DarchetypeArtifactId=lift-archetype-basic \
 -DarchetypeVersion=2.0-scala280-SNAPSHOT \
 -DarchetypeRepository=http://scala-tools.org/repo-snapshots \
 -DremoteRepositories=http://scala-tools.org/repo-snapshots \
 -DgroupId=yours -DartifactId=yourapp

Scalaバージョンは、"2.8.0.Beta1"を入力。

 > mvn jetty:run

で普通に動作します。
以前試したら日本語テンプレートが文字化けするといった不具合がありましたが、3月1日現在は解消されているようです。

Simple Build ToolもScala2.8対応した0.7.1が出ました。ただ、今のところscala2.8+sbt0.7.1の組み合わせではまだ「本体は動かない」らしく、sbtの動作にはscala2.7.7を、アプリのコンパイル&実行にはscala2.8.0.Beta1を使うように設定します。

ちょっと不思議な感じですが、

 > sbt
 [info] Building project Your 1.0 against Scala 2.8.0.Beta1
  →プロジェクトのビルドには2.8を使う。
 [info] using YourProject with sbt 0.7.1 and Scala 2.7.7
  →sbtの動作には2.7を使う。

あとは、こちらのSimple-Build-Tool:Lift Exampleを参考に、
差分は、

■project/build.propertiesの内容を確認

 :
sbt.version=0.7.1
def.scala.version=2.7.7
build.scala.versions=2.8.0.Beta1
 :

■project/build/YourProject.scala

import sbt._

class YourProject(info: ProjectInfo) extends DefaultWebProject(info){

 //ローカルのScalaを指定することもできる。sbt0.7.1の新機能。
 // build.scala.versions=2.8.0-local などとプロパティを指定可。
 override def localScala =
  defineScala("2.8.0-local",new java.io.File("C:/scala-2.8.0.Beta1"))::
  Nil

 // val liftcore = "net.liftweb" % "lift-core" % "2.0-scala280-SNAPSHOT" % "compile"
 // liftcoreを選択すると、rabbitmqのライブラリ依存が解決しない。
 // MQ使わないので個別にロードする。
 val liftwebkit = "net.liftweb" % "lift-webkit" % "2.0-scala280-SNAPSHOT" % "compile"
 val liftmapper = "net.liftweb" % "lift-mapper" % "2.0-scala280-SNAPSHOT" % "compile"
 val liftutil = "net.liftweb" % "lift-util" % "2.0-scala280-SNAPSHOT" % "compile"

 val snapshotsRepo = "m2-repository-snapshots" at "http://scala-tools.org/repo-snapshots/"
}

実プロジェクトのソースをコンパイルしてみましたが、業務ロジック程度の簡単なコードが多いので、特にしんどいコンパイルエラーはなかった。まだテストが通っているわけではないので、様子見状態。


追記:sbtを使ってるとOutOfMemory/StackOverFlowが頻発するので、起動スクリプトは、以下のように調整して使っている。

set SCRIPT_DIR=%~dp0
java -Xss1024K -Xms512M -Xmx512M \
 -XX:PermSize=256m -XX:MaxPermSize=256m \
 -cp target\classes -jar \
 "%SCRIPT_DIR%sbt-launch-0.7.1.jar" %*




同じカテゴリのエントリ
1.Lift再入門 / 8.javascriptからsubmitできない / 7.Ajax Form / 6.Radio、Checkboxについて / 5.行列型の編集FORM / 4.サーバーサイドバリデーションとサーバサイド関数 / 3.ログインFORM - S.param使ったら負け / 2.Snippetメソッドとして許される型 / sbt0.12.xで依存jar抽出タスク / scala2.10+lift2.5+NetBeans7.2 / Scalaで入門関数プログラミング / reactive-webを試してみました / Lift2.2M1のテンプレート機能 / Scala Compiler Plugin / View Bound/Context Bound / ScalaZa01参加してきました / Akka Frameworkチュートリアルの次 / Akka Frameworkチュートリアルその2 / Akka Frameworkチュートリアル / LiftでJCaptcha / Url Rewrite Filter / sbt-android-plugin / Android SDK for Scala / 祝Lift2.0リリース / Liftの携帯対応まとめ / Scala2.8への移行 / Lift 2.0-scala280-SNAPSHOT/sbt0.7.1 / Scalaお絵かき環境 - Kojo / Lift+Quartzでバッチ / Scala&Liftを採用した理由 / Liftでdate_select系ヘルパーを作る / LiftでAjax / LiftのSubmitかしこい / lift-mapperのpaginateを使う / snippetをspecする / Lift Mapperを拡張する / LiftのDBをMySQLに / Liftプロジェクト環境を整える / Scala本読み比べてみました / NetBeans6.7&scala / じつはScalaはライトな言語 / Scalaバザ~ル / lift1.0所感 / specsを読む / implicit def / ScalaならNetBeansがサイコー / scala勉強会@東北がスタート / それでも俺はLiftをやるってのか / Scala&Liftセットアップ / ブログリニューアル /
コメント

コメントしてください

closed.