使用sbt打包scala寫的spark項目,帶依賴打包

項目根目錄build.sbtjava

//項目名稱 
  
name := "sparkScala"
 
 
//項目版本 
 
version := "1.0"

 
//scala版本

scalaVersion := "2.11.7"

 
//jdk版本

javacOptions ++= Seq("-source", "1.7", "-target", "1.7")

 
//依賴項,%%表示測試時須要,通常%; % "provided"表示此jar不打入最終的jar文件內

libraryDependencies += "com.alibaba" % "fastjson" % "1.2.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1" % "provided"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.4.1" % "provided"

 
//主函數

mainClass in Compile := Some("main.MergePartition")

 
//打包時,排除scala類庫

assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)

 

項目根目錄project/plugins.sbt添加assembly插件sql

 addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")

 

最終在項目根目錄下執行shell

sbt clean assembly

 便可看到香噴噴的jar包文件apache

 

解壓裏面便可看到fastjson被打入jar包內,其它要排除的都已被排除json

在META-INF/MANIFEST.MF文件也寫入了Main-Class: main.MergePartition 這個主函數執行類ide

相關文章
相關標籤/搜索