控制在SBT中导出哪个库依赖项

控制在SBT中导出哪个库依赖项,sbt,Sbt,我正在寻找一种方法来控制库依赖项导出了什么,以及没有导出什么。大致如下: "org.slf4j" % "slf4j-api" % "1.7.6" doNotExport 或者在导入项目时,如下图所示: lazy val main = Project(appName, file("."), settings = buildSettings) .dependsOn(ProjectRef(uri("../Utils"), "Utils").exceptLibraryDependency(orga

我正在寻找一种方法来控制库依赖项导出了什么,以及没有导出什么。大致如下:

"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"))
val compileOnly = config("compileOnly").hide

ivyConfigurations += compileOnly

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

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

SBT中有类似的功能吗?

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

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

ivyConfigurations += compileOnly

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

"org.slf4j" % "slf4j-api" % "1.7.6" % compileOnly
请注意,这项技术是在对的回答中描述的

这个问题应该以重复的形式结束,但赏金阻止了这一点