scala - SBT assembly-plugin 的 PathList 中的 "xs @ _*"是什么意思?

标签 scala sbt sbt-assembly

这些短语的含义:

xs @ _*

ps @ _*

复制自 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)
}

最佳答案

在您的示例中,_* 表示一切,@ 表示匹配

xs @ _* 是 case 模式,意味着选择与第一种情况匹配的所有内容 /javax/servlet/*

ps @ _* 表示选取所有与/* 匹配并带有 html 扩展名的内容

关于scala - SBT assembly-plugin 的 PathList 中的 "xs @ _*"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42787113/

相关文章:

scala - sbt 着色两个版本的依赖

SBT 程序集问题 : found String required sbt. Task[String] with <<= syntax

scala - 在 mockito 中模拟通用 scala 方法

java - 在 Scala 中使用 Java 泛型

scala - 不同 sbt key 运算符的用例

scala - 无法使用 sbt.AutoPlugins 添加编译依赖项

apache-spark - 运行 sbt 程序集时服务器访问错误

scala - Spark 和 HBase 快照

java - Play Framework 停留在同一页面然后更改语言

Scala SBT 抛出从 runner : 1 返回的非零退出代码