У меня возникла проблема со сборкой sbt
моего проекта Scala ( повторяющаяся запись: META-INF/MANIFEST.MF
), и следующие строки решили проблему:
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) =>
(xs map {_.toLowerCase}) match {
case ("manifest.mf" :: Nil) | ("index.list" :: Nil) | ("dependencies" :: Nil) => MergeStrategy.discard
case _ => MergeStrategy.last
}
}
IТеперь я пытаюсь понять, что означает двойное двоеточие в вышеуказанном контекстеЯ нашел ответ в Quora , но это не помогло.
Более того, я новичок в Scala, который не очень помогает.
Редактировать:
Видя ответы, я все еще не понимаюпочему, поскольку мы создаем список, следующее не работает (дубликаты manifest.mf
записей не удаляются):
case List("manifest.mf", "index.list", "dependencies") => MergeStrategy.discard
Также не выполняется следующее: (ошибка: ')' expected but '=>' found.
):
case List("manifest.mf") | List(("index.list") | List("dependencies") => MergeStrategy.discard
Редактировать 2:
Снятие дополнительного кронштейна сделало следующую работу:
case List("manifest.mf") | List("index.list") | List("dependencies") => MergeStrategy.discard
А для тех, кто интересуется темой ... 5 способов создания списков в Scala .