基本環境:
背景:
sbt 之於scala 就像 maven 之於 java. 然而 sbt 在牆外,要想使用必須翻牆。實踐證明,翻牆也不好使, maven 好歹能下載下來,而 sbt 直接就是下載失敗,根本無法安裝。最后只能曲線救國,在網絡上找到通過sbt-launch 來啟動sbt 的方法。其主要原理是通過修改 sbt-launch.jar 內部的 repositories 位置(改為國內阿里源)來間接改變sbt 倉庫源,提高sbt 查找依賴的效率。下面介紹手動安裝 sbt 詳細過程。
解決:
1. 下載sbt-launch.jar,然后將源改為國內源(aliyun),我選擇將sbt安裝在/usr/local/sbt中
vim .bashrc
添加下面內容
export SBT_HOME=/usr/local/sbt
export PATH=$SBT_HOME:$SCALA_HOME/bin:$PATH
最后執行 source .bashrc
1) 生成目錄結構, sbt 是插件話的思維,所有都是插件組成,所以核心的 sbt 沒有自動生成目錄結構的功能。網上有生成目錄文件的插件,見 git: https://github.com/softprops/np 不過我覺得也沒什么必要,直接自己生成就行了。可以按照下面的步驟生成。
$ touch build.sbt && echo "name := 'hello'\nversion := '1.0' " > build.sbt $ mkdir -p src/{main,test}/scala $ touch README.md && echo "new project" > README.md
上面的步驟是固定的,如果嫌麻煩的話,可以直接寫一個shell 文件串聯起來,在我們的 sbt 根目錄下面新建 sbt-np(touch sbt-np) 文件,然后添加下面內容:
#!/bin/sh
dir=$(pwd)
cd -P ${dir}
set -ue
touch build.sbt
mkdir -p src/{main,test}/scala
touch README.md && echo "new project" > README.md
創建上面的 sbt-np(sbt new project) 腳本之后,我們可以 source .bashrc, 讓環境變量重新索引下面的可執行文件。下次創建新項目直接執行下面命令即可:
mkdir your-project-name#創建根目錄還是必須滴
sh sbt-np#創建子目錄
2)進入sbt 模式,編譯,打包我們的代碼:
將我們新建的目錄用你喜歡的IDE 打開,同時在項目根目錄執行 sbt 進入命令行模式,執行交互式操作。常用操作:
sbt run #運行代碼,多個main 會讓你選擇
sbt compile #編譯代碼
sbt package #打包成jar包
我們執行上面兩步代碼運行情況如下:
目錄結構:

添加代碼 vim src/main/scala/Test.scala
object Hi { def main(args: Array[String]) = println("Hi!") }
sbt run

1. unzip -q 選項是干什么的呢?
是靜默解壓的意思,就像 tar -zxf 不添加 v 選項一樣,不把解壓過程顯示出來。
2. 如果使用idea 實際上已經自帶了sbt 功能。推薦使用 IDEA, 打包文件
1. https://github.com/softprops/np
2. http://wiki.jikexueyuan.com/project/sbt-getting-started/install-sbt.html
3. https://www.2cto.com/kf/201612/575063.html
4. https://www.jianshu.com/p/9494aecebc8d
5. http://www.importnew.com/4311.html
6. https://blog.csdn.net/microsoft2014/article/details/54572502
7. http://www.powerxing.com/spark-quick-start-guide/
8. https://www.jianshu.com/p/c8c48b0b3866
9. http://maven.aliyun.com/nexus/#nexus-search;quick~sbt-launch

