0

最近Finagle 库开始依赖于libthriftas的自定义分支"com.twitter" % "libthrift"。常规的是"org.apache.thrift" % "libthrift". 两者都在同一个包中包含相同的类。

虽然可以手动清理类路径,但未来可能并非每个开发人员都会意识到这一点——尤其是通过瞬态依赖项。

我们开发了一个内部 SBT 插件,我们所有的项目都在使用它,它可以用于共享设置。我正在寻找一种巧妙的方法来告诉 SBT,依赖关系只是一个别名。在依赖关系解析期间,理想情况下,它将两个 ModuleID 视为具有相同的组织(别名)。

4

1 回答 1

0

问题是用户libraryDependencies将优先于插件中的任何覆盖。可能有效的是压倒一切allDependencies

allDependencies :=
  allDependencies.value.map { module =>
    if (module.organization == "org.apache.thrift" && module.name == "libthrift")
      module.copy(organization = "com.twitter")
    else module
  }
于 2017-04-10T16:56:25.957 回答