sbt插件安装及使用

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,可以这样

sbt插件安装及使用_第1张图片
Paste_Image.png

实际应用。好多还没弄明白

在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 -->

sbt插件安装及使用_第2张图片
Paste_Image.png

遇到的问题,java内存溢出,在sbtconfig.txt文件中增加

-Xms64m
-Xmx500m
-Xss2m
-XX:PermSize=100M
-XX:MaxNewSize=200m
-XX:MaxPermSize=400m

你可能感兴趣的:(sbt插件安装及使用)