我正在寻找一种方法来控制导出的库依赖项,以及什么不是。这些方面的东西:
"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中有这样的东西吗?
答案 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的答案中描述了这种技术。
这个问题应该作为副本关闭,但赏金会阻止这个。