The assumption here is that you are familiar with sbt 0.7 but new to sbt 1.0.2.
sbt 1.0.2’s many new capabilities can be a bit overwhelming, but this page should help you migrate to 1.0.2 with a minimum of fuss.
build.sbtfile in your root directory is easier to create than project/build/MyProject.scala was.
lib_manageddirectory, reducing disk usage and avoiding backup and version control hassles.
updateis 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 1.0.2 as described on the setup page.
You can run 1.0.2 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 1.0.2 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/ directory to something like
will hide it from sbt 1.0.2 but keep it in case you want to switch
back to 0.7.x.
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.
build.sbt file combines aspects of the old
build.properties files. It looks
like a property file, yet contains Scala code in a special format.
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"
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
file alone. sbt 0.7.x will not understand or notice it. Just rename your
project directory to something like
project10 and rename
the backup of your old project from
There’s a section in the FAQ about migration from 0.7 that covers several other important points.