即使使用一个简单的Hello程序,如果我在build.sbt文件中添加play-json作为库依赖项,当我在sbt(sbt-assembly插件)中执行'assembly'命令时,我总是得到一个合并错误。
[error] stack trace is suppressed; run last assembly for the full output
[error] (assembly) deduplicate: different file contents found in the following:
[error] /home/heitor/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.10.1/jackson-annotations-2.10.1.jar:module-info.class
[error] /home/heitor/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar:module-info.class
[error] /home/heitor/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.10.1/jackson-databind-2.10.1.jar:module-info.class
[error] /home/heitor/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.10.1/jackson-datatype-jdk8-2.10.1.jar:module-info.class
[error] /home/heitor/.cache/coursier/v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.10.1/jackson-datatype-jsr310-2.10.1.jar:module-info.class
object MergeApp extends App {
println("Hello")
}
name := "MergeBug"
version := "0.1"
scalaVersion := "2.13.1"
val playJsonVersion = "2.8.1"
libraryDependencies ++= Seq("com.typesafe.play" %% "play-json" % playJsonVersion)
project/build.
sbt.version = 1.3.8
project/plugins.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
您需要定义自定义合并策略。参见https://github.com/sbt/sbt-assembly#merge-strategy
由于module-info.class
文件只对Java9+模块有用,因此可以安全地丢弃它们:
assemblyMergeStrategy in assembly := {
case "module-info.class" => MergeStrategy.discard
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
[错误]不是有效的项目ID:程序集 [错误]应为“:”(如果选择配置) [错误]不是有效的键:程序集
看起来sbt找不到子项目,但我不知道我该如何解决这个错误。顺便说一下,应用程序在2.3.10上可以无缝工作。 我希望有人能帮助我!提前道谢。
运行“SBT程序集”时的问题: [错误]合并java.lang.runtimeException时遇到3个错误:删除重复:在以下位置找到不同的文件内容:.vlasakakis/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.2.jar:org/slf4j/impl/staticMDCBinder.class/u
我正在使用Scala、Akka和ReactiveMongo的Play框架。我想使用MongoDB中的集合作为循环队列。几个参与者可以在其中插入文件;一个参与者在这些文档可用时立即检索它们(一种发布-订阅系统)。我使用的是封顶系列和可裁剪光标。我总是用flush命令从同一个集合中检索所有元素,否则我就不可能用flush命令从该集合中检索所有元素。有没有替代方案?例如,有没有一种方法可以在不移除元素的
sbt版本为0.13。9和scala 2.11。7/我知道以前版本的sbt依赖于scala 2.10-仍然是这样吗?我有一个Java项目,为它添加了一个程序集。项目目录中的sbt文件(根据本版本sbt组件的sbt组件说明): 我运行了sbt重新加载/清理以及编译。但是,当我尝试运行程序集时,会出现以下异常: 在使用sbt为我的java项目创建可运行的jar之前,我遗漏了什么步骤? 如果需要的话,我
每当我上传我的基础和功能APK到Play Store时,我都会遇到以下错误: 您必须为即时应用程序APK提供默认URL。了解更多信息 你的网站www.example。尚未通过数字资产链接协议将com链接到您的应用程序。请通过数字资产链接协议将您的网站链接到您的应用程序 您应该至少有一个映射到网站www.example的活动APK。com通过网络“意图过滤器” 这是我的清单文件:(编辑) 我把资产链