aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorMatei Zaharia <matei@eecs.berkeley.edu>2012-08-02 17:23:13 -0400
committerMatei Zaharia <matei@eecs.berkeley.edu>2012-08-02 17:23:13 -0400
commit71a958b0b7f628fefa82c1c2284369a6a557fa7b (patch)
tree62e5b586d52d5beb622efccfae0086783efea0ec /project
parent7312a5c30f3e3c9e8b618009ea3093abfc101a00 (diff)
parentb8fe6723999e96a794181c3de1c0ab2dc8ff46be (diff)
downloadspark-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.scala58
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
}
)