import AssemblyKeys._

assemblySettings

// Default values val defaultScalaVersion = “2.10.4” val defaultSparkVersion = “1.5.0” val defaultSparkCoreVersion = “2.10” val defaultTargetDir = “target” val defaultHadoopVersion = “1.0.4”

// Values val _hadoopVersion = scala.util.Properties.envOrElse(“HADOOP_VERSION”, defaultHadoopVersion) val _scalaVersion = scala.util.Properties.envOrElse(“SCALA_VERSION”, defaultScalaVersion) val _sparkVersion = scala.util.Properties.envOrElse(“SPARK_VERSION”, defaultSparkVersion) val _sparkCoreVersion = scala.util.Properties.envOrElse(“SPARK_CORE_VERSION”, defaultSparkCoreVersion) val _targetDir = scala.util.Properties.envOrElse(“TARGET_DIR”, defaultTargetDir)

// Project settings name := “ruby-spark”

version := “1.0.0”

scalaVersion := _scalaVersion

javacOptions ++= Seq(“-source”, “1.7”, “-target”, “1.7”)

// Jar target folder artifactPath in Compile in packageBin := file(s“${_targetDir}/ruby-spark.jar”) outputPath in packageDependency := file(s“${_targetDir}/ruby-spark-deps.jar”)

// Protocol buffer support seq(sbtprotobuf.ProtobufPlugin.protobufSettings: _*)

// Additional libraries libraryDependencies ++= Seq(

"org.apache.spark"  %% "spark-core"    % _sparkVersion excludeAll(ExclusionRule(organization = "org.apache.hadoop")),
"org.apache.spark"  %% "spark-graphx"  % _sparkVersion,
"org.apache.spark"  %% "spark-mllib"   % _sparkVersion,
"org.apache.hadoop" %  "hadoop-client" % _hadoopVersion,
"com.github.fommil.netlib" % "all" % "1.1.2",
"org.scalatest" % "scalatest_2.10" % "2.2.1" % "test"

)

// Repositories resolvers ++= Seq(

"JBoss Repository"     at "http://repository.jboss.org/nexus/content/repositories/releases/",
"Spray Repository"     at "http://repo.spray.cc/",
"Cloudera Repository"  at "https://repository.cloudera.com/artifactory/cloudera-repos/",
"Akka Repository"      at "http://repo.akka.io/releases/",
"Twitter4J Repository" at "http://twitter4j.org/maven2/",
"Apache HBase"         at "https://repository.apache.org/content/repositories/releases",
"Twitter Maven Repo"   at "http://maven.twttr.com/",
"scala-tools"          at "https://oss.sonatype.org/content/groups/scala-tools",
"Typesafe repository"  at "http://repo.typesafe.com/typesafe/releases/",
"Second Typesafe repo" at "http://repo.typesafe.com/typesafe/maven-releases/",
"Mesosphere Public Repository" at "http://downloads.mesosphere.io/maven",
Resolver.sonatypeRepo("public")

)

// Merge strategy mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>

{
  case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
  case m if m.startsWith("META-INF") => MergeStrategy.discard
  case PathList("javax", "servlet", xs @ _*) => MergeStrategy.first
  case PathList("org", "apache", xs @ _*) => MergeStrategy.first
  case PathList("org", "jboss", xs @ _*) => MergeStrategy.first
  case "about.html"  => MergeStrategy.rename
  case "reference.conf" => MergeStrategy.concat
  case _ => MergeStrategy.first
}

}