@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就自動完成了。