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
}