我在使用gradle时遇到问题:

我有一个图书馆项目,它有两个图书馆模块(称为libA,libB),
libA是我推送到本地Maven的项目,而libB是libA的依赖项之一,如下所示:

  compile project (':libB')

上传到Maven后,我在应用程序中使用libA作为依赖项
  compile 'com.luis.lib:libA:1.0'

由于某种原因,我还在应用程序中使用了libB的API,因此在编译时会发生错误,但找不到libB。错误代码:

错误:配置项目':app'时发生问题。



我不知道为什么,我也尝试了'transitive = true',但没有帮助。

但:当我将libB的所有代码移至libA作为其一部分时,为。一切正常,我可以在应用程序中使用libB的代码。

谁能告诉我为什么会这样以及如何解决呢?

最佳答案

不幸的是,您还必须将libB也添加为依赖项,因为无法自动执行此操作。同样,您不应该将所有代码从libB复制到libA。我发现很难。

想象一下制作两个新库libC和libD。 libC需要libA,libD也需要。现在,如果您将来自libA的代码包含在libC和libD中,您将得到很多重复代码。如果您随后有一个要同时使用libC和libD的项目,那么您会遇到麻烦,因为libA中的代码变得模棱两可,因此需要提供两次。

因此,我的建议是也推送libB并将compile 'com.luis.lib:libB:1.0'添加到build.gradle中。

10-08 14:18