sbt使用詳解


sbt使用詳解

 

安裝:

我的系統為centos6.5故采用官方提供的在線安裝:

 

[html]  view plain  copy
 
  1. curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo  
  2. sudo mv bintray-sbt-rpm.repo /etc/yum.repos.d/  
  3. sudo yum install sbt  


然后等完畢可以輸入 sbt sbt-version來進行查看安裝是否成功。(這一步可能會很辛苦因為第一次運行的時候他會下載很多東西,而且大部分資源都是在國外,很可能不成功,所以還是耐心點。我前幾篇有文章介紹加快sbt下載的文章可以去看下,但是感覺下載源的時候還是有點幫助。)

 

sbt執行步驟:

 

sbt 完全按照約定工作。sbt 將會自動找到以下內容:

  • 項目根目錄下的源文件
  • src/main/scala 或 src/main/java 中的源文件
  • src/test/scala 或 src/test/java 中的測試文件
  • src/main/resources 或 src/test/resources 中的數據文件
  • lib 中的 jar 文件

默認情況下,sbt 會用和啟動自身相同版本的 Scala 來構建項目。 你可以通過執行 sbt run 來運行項目或者通過 sbt console 進入 Scala REPLsbt console 已經幫你 設置好項目的 classpath,所以可以根據項目的代碼嘗試實際的 Scala 示例。

 

sbt結構說明

基礎目錄 

 

在 sbt 的術語里,“基礎目錄”是包含項目的目錄。所以,如果你創建了一個和 Hello, World 一樣的項目hello ,包含 hello/build.sbt 和 hello/hw.scala, hello 就是基礎目錄。

源代碼 

源代碼可以像 hello/hw.scala 一樣的放在項目的基礎目錄中。然而,大多數人不會在真實的項目中這樣做,因為太雜亂了。 sbt 和 Maven 的默認的源文件的目錄結構是一樣的(所有的路徑都是相對於基礎目錄的):

src/
  main/
    resources/
       <files to include in main jar here>
    scala/
       <main Scala sources>
    java/
       <main Java sources>
  test/
    resources
       <files to include in test jar here>
    scala/
       <test Scala sources>
    java/
       <test Java sources>

src/ 中其他的目錄將被忽略。而且,所有的隱藏目錄也會被忽略。

構建產品 

構建出來的文件(編譯的 classes,打包的 jars,托管文件,caches 和文檔)默認寫在 target 目錄中。

交互模式 

在你的項目目錄下運行 sbt 不跟任何參數:

$ sbt

執行 sbt 不跟任何命令行參數將會進入交互模式。交互模式有一個命令行(含有 tab 自動補全功能和歷史記錄)。

例如,在 sbt 命令行里輸入 compile

> compile

再次 compile,只需要按向上的方向鍵,然后回車。 輸入 run 來啟動程序。 輸入 exit 或者 Ctrl+D (Unix)或者 Ctrl+Z (Windows)可以退出交互模式。

 

批處理模式 

 

你也可以用批處理模式來運行 sbt,可以以空格為分隔符指定參數。對於接受參數的 sbt 命令,將命令和參數用引號引起來一起傳給 sbt。例如:

$ sbt clean compile "testOnly TestA TestB"

在這個例子中,testOnly 有兩個參數 TestA 和 TestB。這個命令會按順序執行(clean, compile, 然后 testOnly)。

常用命令 

下面是一些非常常用的的 sbt 命令。更加詳細的列表請參見 命令行參考

clean 刪除所有生成的文件 (在 target 目錄下)。
compile 編譯源文件(在 src/main/scala 和 src/main/java 目錄下)。
test 編譯和運行所有測試。
console 進入到一個包含所有編譯的文件和所有依賴的 classpath 的 Scala 解析器。輸入 :quit, Ctrl+D (Unix),或者 Ctrl+Z (Windows) 返回到 sbt。
run <參數>* 在和 sbt 所處的同一個虛擬機上執行項目的 main class。
package 將 src/main/resources 下的文件和 src/main/scala 以及 src/main/java 中編譯出來的 class 文件打包成一個 jar 文件。
help <命令> 顯示指定的命令的詳細幫助信息。如果沒有指定命令,會顯示所有命令的簡介。
reload 重新加載構建定義(build.sbt, project/*.scala, project/*.sbt 這些文件中定義的內容)。在修改了構建定義文件之后需要重新加載。

添加依賴庫 

有兩種方式添加第三方的依賴。一種是將 jar 文件 放入 lib/(非托管的依賴)中,另一種是在build.sbt 中添加托管的依賴,像這樣:

val derby = "org.apache.derby" % "derby" % "10.4.1.3" lazy val commonSettings = Seq(   organization := "com.example",   version := "0.1.0",   scalaVersion := "2.11.4" ) lazy val root = (project in file(".")).   settings(commonSettings: _*).   settings(     name := "hello",     libraryDependencies += derby   )

就是像這樣添加版本為 10.4.1.3 的 Apache Derby 庫作為依賴。

key libraryDependencies 包含兩個方面的復雜性:+= 方法而不是 :=,第二個就是 % 方法。+=方法是將新的值追加該 key 的舊值后面而不是替換它,這將在 更多設置 中介紹。% 方法是用來從字符串構造 Ivy 模塊 ID 的,將在 庫依賴 中介紹。

 


免責聲明!

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



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