The assumption here is that you are familiar with sbt 0.7 but new to sbt 0.13.11.
sbt 0.13.11’s many new capabilities can be a bit overwhelming, but this page should help you migrate to 0.13.11 with a minimum of fuss.
build.sbt file
in your root directory is easier to create than
project/build/MyProject.scala was.
lib_managed directory, reducing disk usage and avoiding
backup and version control hassles.
update is now much faster and it’s invoked automatically by sbt.
Reading the Getting Started Guide will probably save you a lot of confusion.
Download sbt 0.13.11 as described on the setup page.
You can run 0.13.11 the same way that you run 0.7.x, either simply:
$ java -jar sbt-launch.jar
Or (as most users do) with a shell script, as described on the setup page.
For more details see the setup page.
Here is a technique for switching an existing project to 0.13.11 while retaining the ability to switch back again at will. Some builds, such as those with subprojects, are not suited for this technique, but if you learn how to transition a simple project it will help you do a more complex one next.
project/ for 0.7.x project Rename your project/ directory to something like project-old. This
will hide it from sbt 0.13.11 but keep it in case you want to switch
back to 0.7.x.
build.sbt for 0.13.11 Create a build.sbt file in the root directory of your project. See
.sbt build definition in the Getting
Started Guide, and for simple examples.
If you have a simple project
then converting your existing project file to this format is largely a
matter of re-writing your dependencies and maven archive declarations in
a modified yet familiar syntax.
This build.sbt file combines aspects of the old
project/build/ProjectName.scala and build.properties files. It looks
like a property file, yet contains Scala code in a special format.
A build.properties file like:
#Project properties
#Fri Jan 07 15:34:00 GMT 2011
project.organization=org.myproject
project.name=My Project
sbt.version=0.7.7
project.version=1.0
def.scala.version=2.7.7
build.scala.versions=2.8.1
project.initialize=false
Now becomes part of your build.sbt file with lines like:
name := "My Project"
version := "1.0"
organization := "org.myproject"
scalaVersion := "2.9.2"
Currently, a project/build.properties is still needed to explicitly
select the sbt version. For example:
Now launch sbt. If you’re lucky it works and you’re done. For help debugging, see below.
If you get stuck and want to switch back, you can leave your build.sbt
file alone. sbt 0.7.x will not understand or notice it. Just rename your
0.13.11 project directory to something like project10 and rename
the backup of your old project from project-old to project again.
There’s a section in the FAQ about migration from 0.7 that covers several other important points.