项目根目录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