項目根目錄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