Java 内部依赖项类限定名称冲突

Java 内部依赖项类限定名称冲突,java,gradle,Java,Gradle,我的Gradle项目中有两个依赖项库: 旧:完整的util库 新:仅数据库库(固定库) 两者都包含相同的数据库连接类,包括包,例如:net.mycompany.common.dbsq.DBConnector() 我需要的是确保使用新的db连接类,但由于所需的UTIL的其余部分在新的数据库中不可用,所以保留旧的(可以没有db类)作为依赖项 是否有可能仅排除/包括依赖项的特定类或包?或者确保相同命名类的“重写”?不幸的是,这不是可传递依赖关系的问题,但名称冲突的db连接类在两者中都存在。我也不能

我的Gradle项目中有两个依赖项库:

  • 旧:完整的util库
  • 新:仅数据库库(固定库)
两者都包含相同的数据库连接类,包括包,例如:net.mycompany.common.dbsq.DBConnector()

我需要的是确保使用新的db连接类,但由于所需的UTIL的其余部分在新的数据库中不可用,所以保留旧的(可以没有db类)作为依赖项

是否有可能仅排除/包括依赖项的特定类或包?或者确保相同命名类的“重写”?不幸的是,这不是可传递依赖关系的问题,但名称冲突的db连接类在两者中都存在。我也不能对依赖项的内容产生任何影响

通过将两者指定为编译依赖项,IDE(Idea)使用新的但正在运行的类。weblogic server中的war使用旧的db连接类


有什么想法吗?我可以给出更具体的描述,但这是一个相当普遍的问题

如果包含两个库,则表示它们已满

我只能想到两种方法:

  • 删除旧的依赖项并检查哪些是包含您所依赖的类的新库。通常,当一个项目将基于一个完整jar的打包替换为基于更精细研磨的打包时,只需添加所有精细研磨的库,就可以拥有完整的类集。如果你告诉我们哪一个是你的图书馆,用更具体的材料回答会更容易
  • 利用旧的库,只使用您需要的类重新打包它。气馁和容易导致问题

  • 最好的选择是1。

    谢谢,它是内部的几年旧库,不再维护,所以我不能期望像更多的grined版本那样有任何更新或延续(在我的例子中,单独的db部分)。我将尝试使用旧的.jar,并删除db classes包。然而,这离理想的解决方案还很远,下载旧的.jar,删除所需的包,并将其配置为文件依赖性解决了我的问题。