SBT准备WAR文件,重复条目:META-INF / MANIFEST.MF

时间:2018-05-09 08:15:20

标签: scala sbt xsbt-web-plugin

我正在尝试将我的应用程序的一个模块打包成lazy val `my-project` = (project in file("my-project")) ... .enablePlugins(TomcatPlugin) 。 我选择xsbt-web-plugin来帮助我。

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

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

我熟悉<?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.SplitPane?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.text.Font?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <SplitPane id="Split" dividerPositions="0.3" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="620.0" prefWidth="871.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="presentation.DataController"> <items> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <Label id ="name" fx:id="name" layoutX="26.0" layoutY="21.0" prefHeight="576.0" prefWidth="205.0" textAlignment="CENTER"/> </children></AnchorPane> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <Label fx:id="daten" layoutX="19.0" layoutY="14.0" prefHeight="576.0" prefWidth="511.0"/> <!-- <Slider layoutX="573.0" layoutY="11.0" orientation="VERTICAL" prefHeight="576.0" prefWidth="14.0" /> !--> </children></AnchorPane> </items> </SplitPane> ,但我看不到重复数据删除的方法。 我怎么能调试,从哪里复制?或者如何解决这种重复?

2 个答案:

答案 0 :(得分:1)

原来我的classpath中有library(magrittr) data %>% strsplit("/") %>% lapply(function(x) {x[6] <- "z"; x}) %>% sapply(paste, collapse = "/") 个文件。 我不知道它是什么,但删除它解决了这个问题。

答案 1 :(得分:0)

我遇到了同样的问题,但是我的类路径中没有明显的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以了解双冒号表示法的含义。