Scala 能否在sbt中定义依赖项别名

Scala 能否在sbt中定义依赖项别名,scala,sbt,ivy,finagle,twitter-finagle,Scala,Sbt,Ivy,Finagle,Twitter Finagle,欺骗库的启动依赖于libthrift的自定义分支,即“com.twitter”%“libthrift”。常规的是“org.apache.thrift”%“libthrift”。两者都在同一个包中包含相同的类 虽然可以手动清理类路径,但这可能不是每个开发人员将来都会知道的,特别是通过临时依赖关系 我们已经开发了一个内部SBT插件,我们所有的项目都在使用它,它可以用于共享设置。我正在寻找一种聪明的方法来告诉SBT,依赖项只是一个别名。在依赖项解析过程中,理想情况下,它会将两个ModuleID视为具有

欺骗库的启动依赖于
libthrift
的自定义分支,即
“com.twitter”%“libthrift”
。常规的是
“org.apache.thrift”%“libthrift”
。两者都在同一个包中包含相同的类

虽然可以手动清理类路径,但这可能不是每个开发人员将来都会知道的,特别是通过临时依赖关系


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

问题在于,用户的
libraryDependencies
将优先于插件中的任何覆盖。可能的工作方式是覆盖所有依赖项:

allDependencies :=
  allDependencies.value.map { module =>
    if (module.organization == "org.apache.thrift" && module.name == "libthrift")
      module.copy(organization = "com.twitter")
    else module
  }