控制在SBT中导出的库依赖项

时间:2014-10-16 00:32:05

标签: sbt

我正在寻找一种方法来控制导出的库依赖项,以及什么不是。这些方面的东西:

"org.slf4j" % "slf4j-api" % "1.7.6" doNotExport

或者可能在导入项目时,如下所示:

lazy val main = Project(appName, file("."), settings = buildSettings)
  .dependsOn(ProjectRef(uri("../Utils"), "Utils").exceptLibraryDependency(organization="org.slf4j"))

SBT中有这样的东西吗?

1 个答案:

答案 0 :(得分:1)

嗯,这完全取决于配置。默认配置再次暴露依赖项。因此可以实现类似的行为:

val compileOnly = config("compileOnly").hide

ivyConfigurations += compileOnly

unmanagedClasspath in Compile ++= 
  update.value.select(configurationFilter(compileOnly.name))

"org.slf4j" % "slf4j-api" % "1.7.6" % compileOnly

请注意,在Add a compile time only dependency in sbt的答案中描述了这种技术。

这个问题应该作为副本关闭,但赏金会阻止这个。