SBT готовит WAR-файл, дубликат записи: META-INF / MANIFEST.MF - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь упаковать один из модулей моего приложения в war. Я выбрал xsbt-web-plugin , чтобы выручить меня.

Я подготовил СБТ, наверное, правильно:

lazy val `my-project` = (project in file("my-project"))
                         ...
                         .enablePlugins(TomcatPlugin)

Но во время sbt package я получаю эту ошибку:

[info] Packaging /home/siatkowskim/Documents/....target/scala-2.11/my-project_2.11-1.2-SNAPSHOT.war ...
[error] java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF

Я знаком с sbt-assembly, но не вижу здесь способа дедупликации. Как я могу даже отладить, откуда это дублируется? Или как решить это дублирование?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

У меня та же проблема, но у меня не было очевидного файла MANIFEST.MF в моем пути к классам. Я могу только предположить, что это прибыло из множества включенных .jar файлов.

Следующее решило проблему:

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
  }
}

См. здесь , чтобы понять, что означает запись в двоеточии.

0 голосов
/ 09 мая 2018

Оказалось, у меня есть файл MANIFEST.MF в моем classpath. Я не знаю, для чего это было, но удаление его решило проблему.

...