排除使用 SBT 创建 fat jar 的依赖

Excluding a dependency in creating fat jar using SBT

我正在编写一个 akka 应用程序。在创建 far jar 应用程序时,我不希望将 scala 库与 jar 一起打包。我的 build.sbt 看起来如下:

lazy val root = (project in file(".")).
  settings(
    name :="akka-app",
    version :="1.0",
    scalaVersion :="2.10.4",
    mainClass in Compile := Some("sample.hello.HelloWorld")            
  )

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.3.4" % "provided",
  "com.typesafe" % "config" % "1.2.1"

)

// META-INF discarding
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
   {   
    case PathList("META-INF", xs @ _*) => MergeStrategy.discard
    case x => MergeStrategy.first
   }   
}

但是这个sbt用jar打包了scala。我只希望 com.typesafe.config 库出现在 jar 中。任何解决方案如何实现这一目标?

您可以通过修改 assemblyOption 设置中的选项来排除 Scala:

assemblyOption in assembly := 
  (assemblyOption in assembly).value.copy(includeScala = false)