【发布时间】: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
[...]
但是,当我使用 implementation 或 api 时,子依赖项似乎被忽略了,如果我不手动添加所有必要的库,则会导致应用程序出现问题。
我不想这样做,因为这个库也将在我的公司之外使用,我们不希望它难以实施。
使用命令compile 仍然有效,所以我正在这样做,但是我不想继续使用过时的函数,因为它可能会在以后引起问题。
--编辑: 我在 Android Studio 的 Project 视图中查看了下载库,所有子依赖项都在那里。它们已下载,但 gradle 不会将它们链接到我的库。
【问题讨论】:
-
我认为问题在于出口商而不是 api/implementation ...在两种情况下检查生成的 pom 文件(旧编译和新 api/implementation)...AFAIK jar/aar 不包含信息关于依赖关系
-
我刚刚检查过了。使用 implementation / api 时没有
标签,但它有 compile. -
你在新项目中检查过吗:如果你不显式添加内部依赖项,你的库是否工作?
-
我检查了,如果我不手动添加它们,lib 将不起作用。这就是我首先发现问题的方式。
标签: android gradle android-gradle-plugin