【问题标题】:SBT prepare WAR file, duplicate entry: META-INF/MANIFEST.MFSBT准备WAR文件,重复条目:META-INF/MANIFEST.MF
【发布时间】:2018-05-09 08:15:20
【问题描述】:

我正在尝试将我的应用程序的一个模块打包到 war 中。 我选择了xsbt-web-plugin 来帮助我。

我已经准备好了sbt,我猜对了:

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,但我认为这里没有重复数据删除的方法。 我什至如何调试,它是从哪里复制的?或者如何解决这种重复?

【问题讨论】:

    标签: scala sbt xsbt-web-plugin


    【解决方案1】:

    我有同样的问题,但我的类路径中没有明显的 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
      }
    }
    

    请参阅here 以了解双冒号表示法的含义。

    【讨论】:

      【解决方案2】:

      原来我的类路径中有MANIFEST.MF 文件。 我不知道它是做什么用的,但删除它解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 2021-04-16
        • 2018-07-23
        相关资源
        最近更新 更多