@REM SBT launcher script
@REM
@REM Envioronment:
@REM JAVA_HOME - location of a JDK home dir (mandatory)
@REM SBT_OPTS - JVM options (optional)
@setlocal
@echo off
set SBT_HOME=%~dp0
set ERROR_CODE=0
rem We use the value of the JAVACMD environment variable if defined
set _JAVACMD=%JAVACMD%
if "%_JAVACMD%"=="" (
if not "%JAVA_HOME%"=="" (
if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
)
)
if "%_JAVACMD%"=="" set _JAVACMD=java
rem We use the value of the JAVA_OPTS environment variable if defined
set _JAVA_OPTS=%JAVA_OPTS%
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=-Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m -Dsbt.log.format=true -Dsbt.ivy.home=E:/dev/ivy/
:run
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%jansi.jar;%SBT_HOME%sbt-launch.jar;%SBT_HOME%classes" SbtJansiLaunch %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal
exit /B %ERROR_CODE%
f:\tmp\test>dir
Volume in drive F is file
Volume Serial Number is A646-F0A7
Directory of f:\tmp\test
02/19/2013 02:09 PM <DIR> .
02/19/2013 02:09 PM <DIR> ..
02/19/2013 11:04 AM 269 build.sbt
02/19/2013 02:08 PM <DIR> target
1 File(s) 269 bytes
3 Dir(s) 29,323,710,464 bytes free
f:\tmp\test>type build.sbt
name := "Project Plan"
version := "1.0"
scalaVersion := "2.9.2"
libraryDependencies ++= Seq(
"org.mongodb" %% "casbah" % "2.5.0",
"net.sourceforge" % "mpxj" % "4.3.0"
)
f:\tmp\test>sbt
[info] Loading global plugins from C:\Users\gzhang\.sbt\plugins
[info] Set current project to Project Plan (in build file:/F:/tmp/test/)
> eclipse
[info] About to create Eclipse project files for your project(s).
[info] Updating {file:/F:/tmp/test/}default-c4a35f...
[info] Resolving org.scala-lang#scala-library;2.9.2 ...
[info] Resolving org.mongodb#casbah_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-commons_2.9.2;2.5.0 ...
[info] Resolving com.github.nscala-time#nscala-time_2.9.2;0.2.0 ...
[info] Resolving joda-time#joda-time;2.1 ..
[info] Resolving org.joda#joda-convert;1.2 ...
[info] Resolving org.specs2#specs2_2.9.2;1.12.2 ...
[info] Resolving org.specs2#specs2-scalaz-core_2.9.2;6.0.1 ...
[info] Resolving org.slf4j#slf4j-api;1.6.0 ...
[info] Resolving org.mongodb#mongo-java-driver;2.10.1 ...
[info] Resolving org.mongodb#casbah-core_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-query_2.9.2;2.5.0 ...
[info] Resolving org.mongodb#casbah-gridfs_2.9.2;2.5.0 ...
[info] Resolving net.sourceforge#mpxj;4.3.0 ...
[info] Resolving org.apache.poi#poi;3.7 ...
[info] Resolving junit#junit;3.8.1 ...
[info] Done updating.
[info] Successfully created Eclipse project files for project(s):
[info] Project Plan
> exit
f:\tmp\test>tree
Folder PATH listing for volume file
Volume serial number is A646-F0A7
F:.
├─project
│ └─target
│ └─config-classes
├─src
│ ├─main
│ │ ├─java
│ │ └─scala
│ └─test
│ ├─java
│ └─scala
└─target
├─scala-2.9.2
│ └─cache
│ └─update
└─streams
└─$global
├─ivy-configuration
│ └─$global
├─ivy-sbt
│ └─$global
├─project-descriptors
│ └─$global
└─update
└─$global
其中,
定義build.sbt文件,請參照sbt的文檔:http://www.scala-sbt.org/release/docs/index.html。 特別說明的是,當添加一個依賴庫的時候,通過Maven Central Repository Search來查找很便捷。比如,項目需要使用Mongo DB的driver
在Maven Central Repository裡面查找”mongodb“:

點擊所需庫的版本號到Artifact Details頁面:

展開Scala SBT,將裡面的Dependency Information拷貝粘貼到build.sbt文件裡面,然後在sbt console裡面運用update,eclipse。下載庫,配置項目的classpath就自動完成了。