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