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" %*




コメント

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: