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.建立啟動(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,可以這樣

Paste_Image.png

實(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 -->

Paste_Image.png

遇到的問題,java內(nèi)存溢出,在sbtconfig.txt文件中增加

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容