sbt file is
name := "web-etl"
exportJars := true
retrieveManaged := true
version := "0.1"
scalaVersion := "2.12.13"
scalacOptions ++= Seq(
"-deprecation",
"-feature",
"-Xfuture",
"-encoding",
"UTF-8",
"-unchecked",
"-language:postfixOps"
)
javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-g", "-Xlint:unchecked")
libraryDependencies ++= {
val sparkVersion = "3.1.1"
val akkaHttpV = "10.2.4"
val akkaV = "2.6.14"
Seq(
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-sql" % sparkVersion ,
"org.apache.spark" %% "spark-hive" % sparkVersion ,
"org.codehaus.janino" % "janino" % "3.1.3" % Provided,
"org.apache.calcite.avatica" % "avatica-core" % "1.17.0",
"com.codahale.metrics" % "metrics-core" % "3.0.2",
"com.enragedginger" %% "akka-quartz-scheduler" % "1.9.0-akka-2.6.x",
"com.typesafe.akka" %% "akka-actor-typed" % "2.6.14",
"redis.clients" % "jedis" % "3.3.0",
"com.datastax.spark" %% "spark-cassandra-connector" % "3.0.1",
"ru.yandex.clickhouse" % "clickhouse-jdbc" % "0.2.4" exclude("net.jpountz.lz4","lz4"),
"net.jpountz.lz4" % "lz4" % "1.3.0" % Provided,
"com.sun.mail" % "javax.mail" % "1.6.2",
"org.postgresql" % "postgresql" % "42.2.19",
"com.typesafe.akka" %% "akka-actor" % akkaV,
"com.typesafe.akka" %% "akka-http" % akkaHttpV
)
}
assembly / test := {}
assembly / mainClass := Some("com.webmetric.etl.MainApp")
assembly / assemblyOption := (assemblyOption in assembly).value.copy(includeScala = false)
assemblyMergeStrategy in assembly := {
case path if path.contains("META-INF/services") => MergeStrategy.concat
case PathList("META-INF", _*) => MergeStrategy.discard
case _ => MergeStrategy.first
case PathList("application.conf") => MergeStrategy.concat
case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
case m if m.toLowerCase.matches("meta-inf.*\\.sf$") => MergeStrategy.discard
case "reference.conf" => MergeStrategy.concat
case x: String if x.contains("UnusedStubClass.class") => MergeStrategy.first
case _ => MergeStrategy.first
}