【问题标题】:Gradle implementation / api does not get sub-dependenciesGradle 实现/api 没有获取子依赖
【发布时间】:2018-01-12 09:57:46
【问题描述】:

我正在尝试在我的 lib 项目中使用新的 gradle 命令,但是出了点问题。 我的 lib 项目,它被上传到 bintray 以便之后在其他应用程序中使用,它有几个子依赖项(例如 gson 和 commons-codec)。使用旧的 gradle(在实现 / api 之前),在将 lib 集成到应用程序中时可以正确看到和下载的那些子依赖项。 命令gradlew :app:dependencies 给出了结果

[...]
+--- com.test:my_lib:2.4.0.4
|    +--- commons-codec:commons-codec:1.6
|    +--- com.google.code.gson:gson:2.8.0
[...]

但是,当我使用 implementationapi 时,子依赖项似乎被忽略了,如果我不手动添加所有必要的库,则会导致应用程序出现问题。 我不想这样做,因为这个库也将在我的公司之外使用,我们不希望它难以实施。

使用命令compile 仍然有效,所以我正在这样做,但是我不想继续使用过时的函数,因为它可能会在以后引起问题。

--编辑: 我在 Android Studio 的 Project 视图中查看了下载库,所有子依赖项都在那里。它们已下载,但 gradle 不会将它们链接到我的库。

【问题讨论】:

  • 我认为问题在于出口商而不是 api/implementation ...在两种情况下检查生成的 pom 文件(旧编译和新 api/implementation)...AFAIK jar/aar 不包含信息关于依赖关系
  • 我刚刚检查过了。使用 implementation / api 时没有 标签,但它有 compile.
  • 你在新项目中检查过吗:如果你不显式添加内部依赖项,你的库是否工作?
  • 我检查了,如果我不手动添加它们,lib 将不起作用。这就是我首先发现问题的方式。

标签: android gradle android-gradle-plugin


【解决方案1】:

用这个

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

【讨论】:

  • 抱歉之前的评论,在 lib 名称中的某处添加错误输入的“gra”。使用正确的名称重新运行命令时,没有什么不同。仍然没有明显的错误。
  • 您为什么建议检查绑定到检测测试的配置?您是否知道如果至少有一种风味,此命令将不起作用?
猜你喜欢
  • 1970-01-01
  • 2020-04-23
  • 2021-02-28
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 2022-12-19
相关资源
最近更新 更多