Recently Finagle库的开始取决于libthrift
的自定义分支"com.twitter" % "libthrift"
。常规的是"org.apache.thrift" % "libthrift"
。两者在同一个包中包含相同的类。
虽然可以手动清理类路径,但是未来每个开发人员都可能会意识到这一点 - 特别是通过瞬态依赖性。
我们开发了一个内部SBT插件,我们所有的项目都在使用,可以用于共享设置。我正在寻找一种聪明的方式来告诉SBT,依赖只是一个别名。在依赖项解析期间,理想情况下它会将ModuleID视为具有相同的组织(别名)。
答案 0 :(得分:0)
问题是用户的libraryDependencies
优先于插件中的任何覆盖。可能有效的是覆盖allDependencies
:
allDependencies :=
allDependencies.value.map { module =>
if (module.organization == "org.apache.thrift" && module.name == "libthrift")
module.copy(organization = "com.twitter")
else module
}