The latest release of sbt (version 0.10) is utterly incompatible with build scripts from older versions of SBT. Here's how to migrate a Lift project to SBT 0.10 (these instructions work with 2.4-M1; I believe you can use earlier versions of lift, as long as you downgrade scalaVersion
to 2.8.1):
- Rename
project/
toproject-old
/ - Create a new
build.sbt
file in the root of your project
name := "projname" scalaVersion := "2.9.0" seq(WebPlugin.webSettings: _*) libraryDependencies ++= Seq( "net.liftweb" %% "lift-webkit" % "2.4-M1" % "compile->default", "net.liftweb" %% "lift-mapper" % "2.4-M1" % "compile->default", "net.liftweb" %% "lift-wizard" % "2.4-M1" % "compile->default") libraryDependencies ++= Seq( "junit" % "junit" % "4.5" % "test->default", "org.mortbay.jetty" % "jetty" % "6.1.22" % "jetty", "javax.servlet" % "servlet-api" % "2.5" % "provided->default", "com.h2database" % "h2" % "1.2.138", "ch.qos.logback" % "logback-classic" % "0.9.26" % "compile->default" )
mkdir -p project/plugins
- Create a new file
project/plugins/build.sbt
and put the following in it:
resolvers += "Web plugin repo" at "http://siasia.github.com/maven2" libraryDependencies <+= sbtVersion("com.github.siasia" %% "xsbt-web-plugin" % _)
Now you're good to go.
Note that the Jetty dependency has changed. If you execute jetty-run and no output appears, make sure you changed the scope for the Jetty dependency from "test" (the correct value in older SBT's) to "jetty".
Also note that the new SBT parser appears to be newline-sensitive; make sure you keep blank lines between each setting, as in the example above.
This is better than it.
ReplyDeletelibraryDependencies ++= {
val liftVersion = "2.4-M1"
Seq(
"net.liftweb" %% "lift-webkit" % liftVersion % "compile->default",
"net.liftweb" %% "lift-mapper" % liftVersion % "compile->default",
"net.liftweb" %% "lift-wizard" % liftVersion % "compile->default")
}
Thanks a lot for this. The "jetty" scope was the last thing blocking me, and I didn't see it mentioned elsewhere. Cheers!
ReplyDeletei currently get an error on sbt start:
ReplyDelete[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.github.mpeltonen#sbt-idea_2.8.1;0.10.0-SNAPSHOT: not found
[warn] :: com.github.siasia#xsbt-web-plugin_2.8.1;0.10.1: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[info]
probably because both pages:
http://siasia.github.com/maven2
and
http://mpeltonen.github.com/maven/
are not existing ?
Nyxos, see this post to resolve that error:
ReplyDeletehttp://stackoverflow.com/questions/6718266/lift-does-not-build-with-sbt
Hi, Google lost my comment after letting me log in... :-(
ReplyDeleteI am new to Lift and I am not migrating from old version of sbt to the new one.
Here are what I did:
- downloaded Lift 2.4-M4.
- downloaded sbt.
- ran sbt.
- went to '/scala_29'
- ran 'sbt update ~jetty-run'
The sbt did not recognize '~jetty-run'. I googled and found your post.
I made what all you described, then ran 'sbt update ~jetty-run' again. I got this error:
$../scala_29/build.sbt:5: error: not found: value WebPlugin
seq(WebPlugin.webSettings: _*)
^
[error] Type error in expression
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
Would you please help me?
I thank you in advance.
Best regards,
Hai Le