使用SBT構建Scala項目


既然決定要在Scala上下功夫,那就要下的徹底。我們入鄉隨俗,學一下SBT。sbt使用ivy作為庫管理工具。ivy默認把library repository建在user home下面。

 

安裝SBT

在SBT的官網(http://www.scala-sbt.org/)下載相應版本的SBT。

wpsC448.tmp

Windows環境下建議配置SBT的環境變量。(windows上搞開發真是越發蛋疼。)具體步驟不說了,就是把sbt/bin目錄配置進PATH。

wpsC459.tmp

wpsC469.tmp

在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命令。)

wpsC46A.tmp

注意:第一次使用sbt命令,程序會去下載所需要的jar包。整個過程需要很長時間,要耐心等待。當窗口中出現">"提示符,則說明sbt已經成功啟動。下載完成后,顯示如下圖:

wpsC49A.tmp

 

sbt命令

幫助命令 help

wpsC4AB.tmp

查看命令的詳細幫助文檔

wpsC4AC.tmp

wpsC4BC.tmp

 

顯示項目配置 show

show name :查看當前項目的名字。

show libraryDependencies :查看當前項目依賴的庫。

 

使用Scala控制台 console

輸入console回車,會在當前會話內啟動一個REPL。sbt會加載當前項目依賴的全部jar包和當前的代碼。即可以在這個解釋器里實驗你的半成品。

因為依賴的jar包也都被加載了,所以對於那些你可能還不熟悉的第三方庫,你有可以在console里玩個痛快!

 

運行Scala程序 run

若項目有個對象帶有方法(或者對象繼承了 App 品質(trait)),那么可以通過輸入 run 在 sbt 中運行代碼。

在 sbt 發現有多個 main 方法時,它會詢問你想執行哪一個。

 

 

使用SBT構建項目

在項目目錄下創建project目錄。

wpsC4BD.tmp

hello-sbt是項目目錄。project是其子目錄。

 

在project目錄中創建build.properties文件。在文件中寫入使用sbt的版本。若本機沒有相應的版本,sbt會自動下載需要的版本。(本機使用當前最新sbt版本0.13.9)

wpsC4BE.tmp

 

 

在項目目錄下,創建build.sbt,填入相應的項目配置

wpsC4BF.tmp

 

 

接着在命令行中,進入當前工程,使用sbt命令,當看見尖括號提示符,即表示創建成功。(注:第一次使用sbt需要等待很長時間去下載相應文件。)

wpsC4D0.tmp

 

 

 

將sbt項目導入到Eclipse

在eclipse中使用sbt相應的配置文件,需要安裝sbteclipse插件,sbteclipse插件會依據sbt的配置生成eclipse項目需要的文件。

sbteclipse官方地址是 https://github.com/typesafehub/sbteclipse 其中有安裝說明。

在工程目錄的project目錄下創建plugins.sbt,其中添加插件內容。

wpsC4D1.tmp

 

 

執行reload命令

wpsC4D2.tmp

接着直接執行eclipse命令,即可生成eclipse項目文件。

 

在eclipse中導入工程即可:

wpsC4D3.tmp

如果沒有創建src目錄,手動創建如下目錄,然后在重新運行eclipse命令即可。

src/main/scala

src/main/java

src/main/resources

src/test/scala

src/test/scala

src/test/resources

 

項目導入到Eclipse中顯示如下:

wpsC4E4.tmp

若發現src目錄下沒有resources可以嘗試手動創建,也可以在build.sbt中添加如下配置。

EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource

總之很簡單。

 

SBT與Scala程序

編寫HelloSBT程序。

在src/main/scala中寫入HelloSBT程序,生成的eclipse項目如下:

wpsC4E5.tmp

 

使用sbt編譯程序

在sbt命令行下輸入compile

wpsC4F5.tmp

 

使用sbt運行程序

在sbt命令行下輸入run

wpsC4F6.tmp

 

將sbt項目導入到Inetllj IDEA

工程導入Inetllj IDEA,需要選擇build.sbt文件,而不是項目文件。Inetllj IDEA會顯示對話框。

wpsC4F7.tmp

注意有一些高級選項,可以設置一下。

 

 

SBT官網有中文版的文檔:http://www.scala-sbt.org/0.13/tutorial/zh-cn/index.html

 

 

--------------------------------------更多內容待寫--------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM