SBT:如何将依赖项的可传递依赖项设置为;“提供”;以后?
我的SBT:如何将依赖项的可传递依赖项设置为;“提供”;以后?,sbt,sbt-assembly,Sbt,Sbt Assembly,我的build.sbt中有类似的内容: lazy val someDeps = Seq( libraryDependencies += "com.example" %% "foo" % "1.3.37", // more ) lazy val some_library = project.in(file("libs/somelibrary")). settings(commonSettings). settings( // project-specific settin
build.sbt中有类似的内容:
lazy val someDeps = Seq(
libraryDependencies += "com.example" %% "foo" % "1.3.37",
// more
)
lazy val some_library = project.in(file("libs/somelibrary")).
settings(commonSettings).
settings(
// project-specific settings
libraryDependencies ++= someDeps
)
lazy val something_with_deps_provided = project.in(file("swdp")).
settings(commonSettings).
settings(
// project-specific settings
libraryDependencies ++= someDeps.map(d => d % "provided")
).dependsOn(some_library)
当我现在使用sbt assembly plugin
创建something\u的程序集时,它仍然将依赖项放入结果jar中,忽略提供的。是否可以将可传递依赖项设置为以后提供的
,如果可以,如何设置?在这种情况下,可以按照中所述使用
排除依赖项
此处为SBT手册:以你的例子:
lazy val something_with_deps_provided = project.in(file("swdp"))
.settings(commonSettings)
.dependsOn(some_library)
.settings(
// project-specific settings
excludeDependencies ++= someDeps.map { d =>
ExclusionRule(
organization = d.organization,
name = d.name
)
}
)
来自someDeps
的依赖项将不再包含在
用deps提供的
项目的组件JAR。
你找到了吗?我想您可以排除上述依赖项,然后按照提供的方式将它们添加回去,但这有点太粗糙了。