What these phrases mean:
xs @ _*
ps @ _*
Copied from documentation:
assemblyMergeStrategy in assembly := {
  case PathList("javax", "servlet", xs @ _*)         => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
  case "application.conf"                            => MergeStrategy.concat
  case "unwanted.txt"                                => MergeStrategy.discard
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}
In your example _* means everything, @ for matching
xs @ _* is case pattern means pick every thing that matched for first case /javax/servlet/* 
ps @ _*  means pick up all that match as /* and with html extension
'@' operator is used to bind to variables in pattern matching.
<somevar> : _* is used to unpack varargs as sequence of appropriate type.
In this example ps @ _* tells pattern matching to retrieve varargs from PathList as Sequence of paths.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With