https://my.oschina.net/u/915967/blog/146746
1.下載
http://www.scala-sbt.org/download.html
2.解壓
tar zxvf sbt-0.13.11.tgz
3.建立啟動(dòng)sbt腳本文件
$ cd ./sbt
$ vim sbt
# 在sbt文本文件中添加如下信息:
BT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar /home/zhangchengfei/Tools/sbt/bin/sbt-launch.jar "$@"
4.修改sbt文件權(quán)限
$ chmod u+x sbt
5.配置PATH環(huán)境變量
$ vim ~/.bashrc# 在文件尾部添加如下代碼后,保存退出export PATH=/home/zhangchengfei/Tools/sbt/:$PATH
$ source ~/.bashrc
6.sbt設(shè)置
配置文件的目錄在./sbt/conf/sbtconfig.txt
設(shè)置網(wǎng)絡(luò)代理,在配置中添加:
-Dhttp.proxyHost=proxy.zte.com.cn
-Dhttp.proxyPort=80
安裝完成后會(huì)在用戶的根目錄生成兩個(gè)文件夾,sbt工作文件夾.sbt和lvy緩存目錄.ivy2,修改默認(rèn)路徑,在配置中添加:
-Dsbt.global.base=/home/zhangchengfei/Tools/sbt/.sbt
-Dsbt.ivy.home=/home/zhangchengfei/Toos/sbt/.ivy2
7.測試是否成功
$ sbt sbt-version
[info] Set current project to sbt (in build file:/opt/scala/sbt/)[info] 0.13.9
使用方法
1.創(chuàng)建sbt項(xiàng)目
(1)mkdir sbttest
(2)創(chuàng)建文件build.dbt
name := "sbttest"
version := "1.0"
scalaVersion := "2.11.8"
(3)創(chuàng)建project文件夾,并進(jìn)入
(4)新建build.properties文件
sbt.version = 0.13.8
(5)在命令行輸入sbt即可生成dbt項(xiàng)目
2.創(chuàng)建eclipse 項(xiàng)目
(1)在~/.sbt/0.13/plugins目錄下創(chuàng)建sbteclipse.sbt
添加內(nèi)容為
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")
(2)在項(xiàng)目目錄下執(zhí)行sbt,或者reload,則會(huì)自動(dòng)更新
(3)直接導(dǎo)入eclipse項(xiàng)目即可
注意
這種方式是全局配置,每一個(gè)sbt項(xiàng)目都會(huì)自動(dòng)加載sbteclipse插件如果不想這樣,可以在項(xiàng)目project文件夾中的plugins.sbt
添加
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")
編譯和打包
1.直接打包
cd ~/spark_wordcount/
./sbt compile
./sbt package
在\target\scala-2.11目錄下有jar包
2.用assembly打包
1.首先在 project/plugins.sbt: 下加入這段代碼:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")`
2.先對project 執(zhí)行sbt 看看能不能通過 記住要在機(jī)子上裝好Git
3.在根目錄創(chuàng)建assembly.sbt文件,內(nèi)容如下:
import AssemblyKeys._ // put this at the top of the fileassemblySettings// your assembly settings here
之后就可以sbt assembly
來打包了,生成./target/scala_x.x.x/projectname-assembly-x.x.x.jar
4.如果想更詳細(xì)的配置assembly,可以這樣

實(shí)際應(yīng)用。好多還沒弄明白
在build.sbt中如下,需要設(shè)置排除的文件等
import AssemblyKeys._
name := "sparkmlib"
version := "1.0"
scalaVersion := "2.10.0"
libraryDependencies += "org.jblas" % "jblas" % "1.2.3"
libraryDependencies += "org.scala-lang" % "scala-library" % "2.10.0" % "provided"
mergeStrategy in assembly := {
case PathList(ps @ _*) if ps.last endsWith ".properties" => MergeStrategy.first
case PathList("scala", xs @ _*) => MergeStrategy.first
case x =>
val oldStrategy = (mergeStrategy in assembly).value
oldStrategy(x)
}
在plugin.sbt中如下
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
2.不用sbt,倒是挺方便的
file -->project structure -->

遇到的問題,java內(nèi)存溢出,在sbtconfig.txt文件中增加
-Xms64m
-Xmx500m
-Xss2m
-XX:PermSize=100M
-XX:MaxNewSize=200m
-XX:MaxPermSize=400m