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.建立啟動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文件權限
$ chmod u+x sbt
5.配置PATH環境變量
$ vim ~/.bashrc# 在文件尾部添加如下代碼后,保存退出export PATH=/home/zhangchengfei/Tools/sbt/:$PATH
$ source ~/.bashrc
6.sbt設置
配置文件的目錄在./sbt/conf/sbtconfig.txt
設置網絡代理,在配置中添加:
-Dhttp.proxyHost=proxy.zte.com.cn
-Dhttp.proxyPort=80
安裝完成后會在用戶的根目錄生成兩個文件夾,sbt工作文件夾.sbt和lvy緩存目錄.ivy2,修改默認路徑,在配置中添加:
-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.創建sbt項目
(1)mkdir sbttest
(2)創建文件build.dbt
name := "sbttest"
version := "1.0"
scalaVersion := "2.11.8"
(3)創建project文件夾,并進入
(4)新建build.properties文件
sbt.version = 0.13.8
(5)在命令行輸入sbt即可生成dbt項目
2.創建eclipse 項目
(1)在~/.sbt/0.13/plugins目錄下創建sbteclipse.sbt
添加內容為
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")
(2)在項目目錄下執行sbt,或者reload,則會自動更新
(3)直接導入eclipse項目即可
注意
這種方式是全局配置,每一個sbt項目都會自動加載sbteclipse插件如果不想這樣,可以在項目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 執行sbt 看看能不能通過 記住要在機子上裝好Git
3.在根目錄創建assembly.sbt文件,內容如下:
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.如果想更詳細的配置assembly,可以這樣
實際應用。好多還沒弄明白
在build.sbt中如下,需要設置排除的文件等
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內存溢出,在sbtconfig.txt文件中增加
-Xms64m
-Xmx500m
-Xss2m
-XX:PermSize=100M
-XX:MaxNewSize=200m
-XX:MaxPermSize=400m