项目根目录build.sbt
//项目名称
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插件
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
最终在项目根目录下执行
sbt clean assembly
即可看到香喷喷的jar包文件
解压里面即可看到fastjson被打入jar包内,其它要排除的都已被排除
在META-INF/MANIFEST.MF文件也写入了Main-Class: main.MergePartition 这个主函数执行类