您如何在全球范围内排除传递依赖?我的项目取决于许多Twitter库或依赖于Twitter库的库。我不想在我的类路径中slf4j-jdk14
,无论如何(我使用logback作为slf4j绑定)。
目前我这样做:
"com.twitter" %% "finagle-thriftmux" % "6.16.0" exclude("org.slf4j", "slf4j-jdk14")
但每次有人添加另一个使用slf4j-jdk14
的依赖项时,我可能会将其恢复到类路径中。
答案 0 :(得分:38)
自sbt 0.13.8
在sbt 0.13.8中,possibility可以全局排除依赖关系。这是一个紧凑的例子:
excludeDependencies += "org.slf4j.slf4j-jdk14"
然而,在撰写本文时,此功能已标记为实验性,因此明智地了解旧解决方案。
在sbt 0.13.8之前
对于一组依赖项,您可以按如下方式执行:
libraryDependencies ++= Seq(
"com.twitter" %% "finagle-thriftmux" % "6.16.0",
"com.twitter" % "lib" % "2.0",
"com.domain" % "some-other-lib" % "1.0"
).map(_.exclude("org.slf4j", "slf4j-jdk14"))
答案 1 :(得分:34)
excludeDependencies += "org.slf4j" % "slf4j-jdk14"
答案 2 :(得分:5)
libraryDependencies := libraryDependencies.value.map(_.exclude("groupid", "artifactname"))