project/Exclude.scala (26 lines of code) (raw):
import sbt._
object Exclude {
val gcsio: ExclusionRule = "com.google.cloud.bigdataoss" % "gcsio"
// replaced by io.dropwizard.metrics metrics-core
val metricsCore: ExclusionRule = "com.codahale.metrics" % "metrics-core"
// kafka isn't exposed in scio and pulling too many things
val beamKafka: ExclusionRule = "org.apache.beam" % "beam-sdks-java-io-kafka"
// logger implementation must be given by the runner lib
val loggerImplementations: Seq[ExclusionRule] = Seq(
"ch.qos.logback" % "logback-classic",
"ch.qos.logback" % "logback-core",
"ch.qos.reload4j" % "reload4j",
"org.slf4j" % "slf4j-log4j12",
"org.slf4j" % "slf4j-reload4j",
"io.dropwizard.metrics" % "metrics-logback",
"log4j" % "log4j"
)
// Beam 2.64 pulls in jackson-module-scala_2.12, which pulls in chill_2.12
def jacksonCrossBuilt(scalaVersion: String): Seq[ExclusionRule] = VersionNumber(
scalaVersion
) match {
case v if v.matchesSemVer(SemanticSelector("2.12.x")) =>
Nil
case _ =>
Seq(
ExclusionRule("com.twitter", "chill_2.12"),
ExclusionRule("com.fasterxml.jackson.module", "jackson-module-scala_2.12")
)
}
}