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