SBT自定义冲突管理器

Jus*_*ser 3 dependency-management sbt

我想更好地了解组织中工件之间存在冲突的依赖关系.为此,我创建了一个包含所有其他顶级项目的元项目.为了识别各种传递依赖的冲突,我的想法是使用冲突管理器.

我知道我可以设置这样的冲突管理器

conflictManager := ConflictManager.strict
Run Code Online (Sandbox Code Playgroud)
  1. 我如何仅为com.example包设置严格的管理器,并可能与其他更具体的管理器组合?
  2. 是否有可能创建完全自定义的依赖关系管理器,这只会警告冲突?

我也很感谢有关解决这个问题的其他想法.

lau*_*lic 5

  1. 你可以做到

    conflictManager := ConflictManager.strict.copy(organization = "com.example.*")

    您可以改变(Ivy)类型的冲突管理器,组织和模块过滤器.用它的定义来看这个sbt 源码.另请参阅有关冲突管理器类型的常春藤文档

  2. 看来你可以定义一个自定义Ivy冲突管理器设置它的名字ConflictManager("...")(参见Ivy docs,你可以在那里写什么).虽然我没有看到任何方法来组合几个冲突管理器:sbt只提供一个设置键conflictManager直接从中设置常春藤管理器.