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.