使用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

相关文章
相关标签/搜索