既然決定要在Scala上下功夫,那就要下的徹底。我們入鄉隨俗,學一下SBT。sbt使用ivy作為庫管理工具。ivy預設把library repository建在user home下面。
安裝SBT
在SBT的官網(http://www.scala-sbt.org/)下載相應版本的SBT。
Windows環境下建議配置SBT的環境變數。(windows上搞開發真是越發蛋疼。)具體步驟不說了,就是把sbt/bin目錄配置進PATH。
在sbt/bin下有個sbt.bat,檢視該bat檔案。可以瞭解到該檔案依賴於conf/sbtconfig.txt。
在conf/sbtconfig.txt中新增:
-Dfile.encoding=UTF8 -Dsbt.boot.directory=d:/sbt-repository/boot/ -Dsbt.ivy.home=d:/sbt-repository/
說明:
-Dsbt.boot.directory
-Dsbt.ivy.home
這兩個是配置sbt.boot目錄和ivy.home目錄,用於快取的jar包等資訊存放位置。預設情況下jar包等資訊存放於user home目錄。
另外執行sbt的一下JVM引數也可以在sbtconfig.txt中指定。
SBT命令列環境
在命令列中進入工程目錄,輸入sbt,進入sbt的命令列。(這裡建議進入工程目錄再執行sbt命令。)
注意:第一次使用sbt命令,程式會去下載所需要的jar包。整個過程需要很長時間,要耐心等待。當視窗中出現">"提示符,則說明sbt已經成功啟動。下載完成後,顯示如下圖:
sbt命令
幫助命令 help
檢視命令的詳細幫助文件
顯示專案配置 show
show name :檢視當前專案的名字。
show libraryDependencies :檢視當前專案依賴的庫。
使用Scala控制檯 console
輸入console回車,會在當前會話內啟動一個REPL。sbt會載入當前專案依賴的全部jar包和當前的程式碼。即可以在這個直譯器裡實驗你的半成品。
因為依賴的jar包也都被載入了,所以對於那些你可能還不熟悉的第三方庫,你有可以在console裡玩個痛快!
執行Scala程式 run
若專案有個物件帶有方法(或者物件繼承了 App 品質(trait)),那麼可以通過輸入 run 在 sbt 中執行程式碼。
在 sbt 發現有多個 main 方法時,它會詢問你想執行哪一個。
使用SBT構建專案
在專案目錄下建立project目錄。
hello-sbt是專案目錄。project是其子目錄。
在project目錄中建立build.properties檔案。在檔案中寫入使用sbt的版本。若本機沒有相應的版本,sbt會自動下載需要的版本。(本機使用當前最新sbt版本0.13.9)
在專案目錄下,建立build.sbt,填入相應的專案配置
接著在命令列中,進入當前工程,使用sbt命令,當看見尖括號提示符,即表示建立成功。(注:第一次使用sbt需要等待很長時間去下載相應檔案。)
將sbt專案匯入到Eclipse
在eclipse中使用sbt相應的配置檔案,需要安裝sbteclipse外掛,sbteclipse外掛會依據sbt的配置生成eclipse專案需要的檔案。
sbteclipse官方地址是 https://github.com/typesafehub/sbteclipse 其中有安裝說明。
在工程目錄的project目錄下建立plugins.sbt,其中新增外掛內容。
執行reload命令
接著直接執行eclipse命令,即可生成eclipse專案檔案。
在eclipse中匯入工程即可:
如果沒有建立src目錄,手動建立如下目錄,然後在重新執行eclipse命令即可。
src/main/scala
src/main/java
src/main/resources
src/test/scala
src/test/scala
src/test/resources
專案匯入到Eclipse中顯示如下:
若發現src目錄下沒有resources可以嘗試手動建立,也可以在build.sbt中新增如下配置。
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
總之很簡單。
SBT與Scala程式
編寫HelloSBT程式。
在src/main/scala中寫入HelloSBT程式,生成的eclipse專案如下:
使用sbt編譯程式
在sbt命令列下輸入compile
使用sbt執行程式
在sbt命令列下輸入run
將sbt專案匯入到Inetllj IDEA
工程匯入Inetllj IDEA,需要選擇build.sbt檔案,而不是專案檔案。Inetllj IDEA會顯示對話方塊。
注意有一些高階選項,可以設定一下。
SBT官網有中文版的文件:http://www.scala-sbt.org/0.13/tutorial/zh-cn/index.html
--------------------------------------更多內容待寫--------------------------------------------