排除使用 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)
我正在编写一个 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)