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

时间:2017-08-15 13:20:43

标签: java gradle

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

  • OLD:完整的util lib
  • NEW:只有db lib(固定lib)

,它们都包含相同的数据库连接类,包括例如: net.mycompany.common.dbsq.DBConnector()

我需要的是确保使用来自NEW的数据库连接类,但保留OLD(可以没有数据库类)作为依赖性,因为其他所需的工具包在NEW中不可用。

是否有可能排除/仅包含特定的类或依赖包?或者确保“覆盖”'相同的命名类?不幸的是,它不是传递依赖的问题,但名称冲突的数据库连接类同时存在。此外,我不能对依赖的内容产生任何影响。

通过将两者都指定为编译依赖项,IDE(Idea)使用NEW中的类,但在weblogic服务器中运行.war使用来自OLD的数据库连接类。

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

1 个答案:

答案 0 :(得分:1)

如果您要包含两个库,则将它们包含在内。

我只能想到两种方法:

  1. 删除旧的依赖项并检查哪些是包含您所依赖的类的新库。通常,当一个项目基于一个完整的jar包装基于更精细的包装来替换包装时,你可以通过添加所有精细的库来获得完整的类。如果您告诉我们哪个是您的图书馆,那么更容易回答更具体的内容。
  2. 选择旧图书馆并仅使用您需要的课程重新打包。气馁,容易导致问题。
  3. 最佳选择是1。