def discardMeta()

in build.sbt [215:254]


def discardMeta(f: String): Boolean =
  discardMetaFiles.contains(f) || signedMetaExtensions.exists(f.endsWith) || f.endsWith(
    ".kotlin_module"
  )

lazy val assemblySettings = Seq(
  assembly / assemblyMergeStrategy := {
    case PathList("javax", "xml", "bind", _*) =>
      // prefer jakarta over jaxb
      CustomMergeStrategy("xml")(exclude("jaxb-api", "avro-tools"))
    case PathList("org", "apache", "log4j", _*) =>
      // prefer reload4j over log4j
      CustomMergeStrategy("log4j")(exclude("log4j", "avro-tools"))
    case PathList("org", "slf4j", "impl", _*) =>
      // prefer slf4j-reload4j over slf4j-log4j12
      CustomMergeStrategy("slf4j-log4j")(exclude("slf4j-log4j12", "avro-tools"))
    case "log4j.properties" =>
      MergeStrategy.preferProject
    case x if x.endsWith(".properties") =>
      MergeStrategy.filterDistinctLines
    case PathList("META-INF", "services", _*) =>
      MergeStrategy.filterDistinctLines
    case PathList("META-INF", "NOTICE") =>
      // avro-tools META-INF/NOTICE must not be renamed
      CustomMergeStrategy.rename(preserveName("avro-tools"))
    case PathList("META-INF", "NOTICE.txt" | "FastDoubleParser-NOTICE") =>
      MergeStrategy.rename
    case PathList("NOTICE") =>
      MergeStrategy.rename
    case PathList("META-INF", "maven" | "versions", _*) =>
      MergeStrategy.discard
    case PathList("META-INF", x) if discardMeta(x) =>
      MergeStrategy.discard
    case PathList("module-info.class" | "LICENSE") =>
      MergeStrategy.discard
    case x =>
      // avro-tools is a fat jar
      // in case of conflict prefer library from other source
      CustomMergeStrategy("avro-tools")(exclude("avro-tools"))
  }