diff options
author | Matei Zaharia <matei@eecs.berkeley.edu> | 2012-08-02 17:23:13 -0400 |
---|---|---|
committer | Matei Zaharia <matei@eecs.berkeley.edu> | 2012-08-02 17:23:13 -0400 |
commit | 71a958b0b7f628fefa82c1c2284369a6a557fa7b (patch) | |
tree | 62e5b586d52d5beb622efccfae0086783efea0ec /project | |
parent | 7312a5c30f3e3c9e8b618009ea3093abfc101a00 (diff) | |
parent | b8fe6723999e96a794181c3de1c0ab2dc8ff46be (diff) | |
download | spark-71a958b0b7f628fefa82c1c2284369a6a557fa7b.tar.gz spark-71a958b0b7f628fefa82c1c2284369a6a557fa7b.tar.bz2 spark-71a958b0b7f628fefa82c1c2284369a6a557fa7b.zip |
Merge branch 'dev' of github.com:mesos/spark into dev
Conflicts:
project/SparkBuild.scala
Diffstat (limited to 'project')
-rw-r--r-- | project/SparkBuild.scala | 58 |
1 files changed, 3 insertions, 55 deletions
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index a244f9c229..81e72be58d 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -1,7 +1,5 @@ import sbt._ import Keys._ -import classpath.ClasspathUtilities.isArchive -import java.io.FileOutputStream import sbtassembly.Plugin._ import AssemblyKeys._ import twirl.sbt.TwirlPlugin._ @@ -72,12 +70,12 @@ object SparkBuild extends Build { "cc.spray" % "spray-can" % "1.0-M2.1", "cc.spray" % "spray-server" % "1.0-M2.1" ) - ) ++ assemblySettings ++ extraAssemblySettings ++ mergeSettings ++ Twirl.settings + ) ++ assemblySettings ++ extraAssemblySettings ++ Twirl.settings def replSettings = sharedSettings ++ Seq( name := "spark-repl", libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _) - ) ++ assemblySettings ++ extraAssemblySettings ++ mergeSettings + ) ++ assemblySettings ++ extraAssemblySettings def examplesSettings = sharedSettings ++ Seq( name := "spark-examples" @@ -85,60 +83,10 @@ object SparkBuild extends Build { def bagelSettings = sharedSettings ++ Seq(name := "spark-bagel") - // Fix for "No configuration setting found for key 'akka.version'" exception - // when running Spark from the jar generated by the "assembly" task; see - // http://letitcrash.com/post/21025950392/howto-sbt-assembly-vs-reference-conf - lazy val merge = TaskKey[File]("merge-reference", - "merge all reference.conf") - - lazy val mergeSettings: Seq[Project.Setting[_]] = Seq( - merge <<= (fullClasspath in assembly) map { - c => - // collect from all elements of the full classpath - val (libs, dirs) = - c map (_.data) partition (isArchive) - // goal is to simply concatenate files here - val dest = file("reference.conf") - val out = new FileOutputStream(dest) - val append = IO.transfer(_: File, out) - try { - // first collect from managed sources - (dirs * "reference.conf").get foreach append - // then from dependency jars by unzipping and - // collecting reference.conf if present - for (lib <- libs) { - IO withTemporaryDirectory { - dir => - IO.unzip(lib, dir, "reference.conf") - (dir * "reference.conf").get foreach append - } - } - // return merged file location as task result - dest - } finally { - out.close() - } - }, - - // get rid of the individual files from jars - excludedFiles in assembly <<= - (excludedFiles in assembly) { - (old) => (bases) => - old(bases) ++ (bases flatMap (base => - (base / "reference.conf").get)) - }, - - // tell sbt-assembly to include our merged file - assembledMappings in assembly <<= - (assembledMappings in assembly, merge) map { - (old, merged) => (f) => - old(f) :+(merged, "reference.conf") - } - ) - def extraAssemblySettings() = Seq(test in assembly := {}) ++ Seq( mergeStrategy in assembly := { case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard + case "reference.conf" => MergeStrategy.concat case _ => MergeStrategy.first } ) |