标签: sbt-assembly

sbt 程序集合并问题 [重复数据删除:以下文件内容不同]

我在 stackoverflow 中遵循了其他 sbt 程序集合并问题并添加了合并策略,但仍然没有得到解决。我添加了依赖树插件,但它没有显示传递库的依赖关系。我已经使用了 sbt 的最新合并策略,但是这个重复的内容问题仍然存在。

build.sbt:-

import sbtassembly.Log4j2MergeStrategy

name := ""
organization := "" // change to your org
version := "0.1"

scalaVersion := "2.11.8"
val sparkVersion = "2.1.1"

resolvers += "jitpack" at "https://jitpack.io"
resolvers += "bintray-spark-packages" at "https://dl.bintray.com/spark-packages/maven/"

resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

resolvers +=Resolver.typesafeRepo("releases")

//addSbtPlugin("org.spark-packages" % "sbt-spark-package" % "0.2.6")



libraryDependencies ++= Seq(
  ("org.apache.spark" %% "spark-core" % "2.1.1" %"provided").
    exclude("commons-beanutils", "commons-beanutils-core").
    exclude("commons-collections", "commons-collections").
    exclude("commons-logging", "commons-logging").
    exclude("com.esotericsoftware.minlog", "minlog"),
  ("org.apache.spark" %% "spark-hive" % "2.1.1" %"provided").
    exclude("commons-beanutils", …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-assembly apache-spark sbt-plugin

1
推荐指数
1
解决办法
2601
查看次数

播放JSON库和sbt程序集合并错误

即使使用简单的 Hello 程序,如果我在 build.sbt 文件中添加 play-json 作为库依赖项,当我在 sbt(sbt-assemble 插件)中执行“assemble”命令时,我总是会收到合并错误。

[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
Run Code Online (Sandbox Code Playgroud)

MergeApp.scala

object MergeApp extends App {
  println("Hello")
}
Run Code Online (Sandbox Code Playgroud)

构建.sbt

name := "MergeBug"

version := "0.1"

scalaVersion := "2.13.1"

val playJsonVersion = "2.8.1"

libraryDependencies ++= Seq("com.typesafe.play" %% "play-json" % playJsonVersion)
Run Code Online (Sandbox Code Playgroud)

项目/build.properties

sbt.version = 1.3.8
Run Code Online (Sandbox Code Playgroud)

项目/plugins.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
Run Code Online (Sandbox Code Playgroud)

merge scala sbt-assembly play-json

1
推荐指数
1
解决办法
1078
查看次数

在Scala中,双冒号(或冒号)::是什么意思?

我在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
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在试图理解在上述情况下双冒号的含义。我在Quora中找到了答案,但这没有帮助。

而且,我是Scala的新手,但实际上并没有帮助。

编辑:

看到答案后,我仍然不明白为什么,因为我们正在创建列表,因此以下内容不起作用(重复的manifest.mf条目不会被丢弃):

case List("manifest.mf", "index.list", "dependencies") => MergeStrategy.discard
Run Code Online (Sandbox Code Playgroud)

以下内容也不会:(错误:)')' expected but '=>' found.

case List("manifest.mf") | List(("index.list") | List("dependencies") => MergeStrategy.discard
Run Code Online (Sandbox Code Playgroud)

编辑2:

卸下额外的支架可完成以下工作:

case List("manifest.mf") | List("index.list") | List("dependencies") …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-assembly

0
推荐指数
1
解决办法
316
查看次数

任务“程序集”失败,并显示“[错误](程序集)java.nio.file.InvalidPathException:索引 121 处的尾随字符 < >”

执行任务“Assembly”失败并显示[error] (assembly) java.nio.file.InvalidPathException: Trailing char < > at index 121: C:\Users\IdeaProjects\GlobalConfigEditor\target\scala-2.13\GlobalConfigEditor-SettingKey(This \ This \ This

构建.sbt

name := "GlobalConfigEditor"

version := "0.3"

scalaVersion := "2.13.1"

mainClass in assembly := Some("globalconfig.ConfigEditorApplication")
assemblyJarName in assembly := s"GlobalConfigEditor-$version.jar"

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs@_*) => MergeStrategy.discard
  case PathList("reference.conf") => MergeStrategy.concat
  case x => MergeStrategy.first
}

libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.9"
libraryDependencies += "commons-io" % "commons-io" % "2.6"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
libraryDependencies += "com.typesafe.scala-logging" …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-assembly

0
推荐指数
1
解决办法
1018
查看次数

标签 统计

sbt-assembly ×4

scala ×4

sbt ×3

apache-spark ×1

merge ×1

play-json ×1

sbt-plugin ×1