The document discusses migrating a Scala build tool (sbt) project from version 0.7 to 0.10. It provides an overview of the major changes in sbt 0.10, including new ways of configuration using basic or full Scala-based approaches. The author recommends using the full configuration for more power and comfort. Steps are outlined for migrating a Lift web framework project specifically, including changes to dependency management, plugins, and subprojects. Resources are provided to help understand the new sbt 0.10 features and configuration options.
2. Who am I? Software engineer / technical consultant 10 months with Scala and #rpscala A big fan of Lift Spend half of my time with PHP
3. Goal Migrate my sbt 0.7.x project to sbt 0.10. Composed of sub projects Lift app
4. What’s new in sbt 0.10.x? Dunno…should be better than 0.7.x Two ways of configuration Basic Configuration (DSL) Full Configuration (Scala) and more…
6. Basic Configuration Less features Easier? Similar to Scala IMHO, almost as complex as Scala I wouldn’t recommend…
7. Full Configuration Write in Scala -> more comfortable More control https://github.com/harrah/xsbt/wiki/Full-Configuration-Example Much less information… “ Use the source, Luke”
8. Let’s get started https://github.com/harrah/xsbt/wiki/Migrating-from-SBT-0.7.x-to-0.10.x This is for “Basic Configuration” Steps Install sbt 0.10.0 Back up the old “project” directory Write Build.scala not build.sbt Run (and cross your fingers)
10. Resolvers Pair of Name and URL Example val jGitRepo = " JGit " at ” http://download.eclipse.org/jgit/maven "
11. Sub projects (0.7.x) class LifthubProject(info: ProjectInfo) extends ParentProject(info) { lazy val core = project("core", "Lifthub core", new CoreProject(_)) lazy val web = project("web", "Lifthub web", new LiftProject(_), core ) lazy val bgtasks = project("bgtasks", "Lifthub bg tasks", new BgProject(_), core ) } protected class CoreProject(info: ProjectInfo) extends DefaultProject(info) with AkkaProject { // plugins are traits in sbt 0.7.x. // snip } protected class LiftProject(info: ProjectInfo) extends DefaultWebProject (info) { // web support is part of sbt 0.7.x. // snip }