【发布时间】:2019-03-20 08:25:12
【问题描述】:
我正在尝试创建一个 Android 库 myLibrary,它将作为 AAR 交付给我公司的其他人。
myLibrary 的许多依赖项都是用于与手机硬件通信(条形码扫描等)的 API。这些第三方库之一需要使用 compileOnly 而不是 implementation 将其添加到您的项目中,因为提供的 JAR 文件包含存根实现;完整的实现由设备提供。
在我的库模块的 build.gradle 中:
implementation files('libs/Vendor1.jar')
implementation files('libs/Vendor2.jar')
compileOnly files('libs/Vendor3.jar')
在本例中,Vendor3 对设备硬件的 API 是 compileOnly。
我的用例是我希望 myLibrary 的使用者能够扩展我提供的功能。这意味着,如果我有一个 MyCoolVendor3Class 并且他们想要扩展它并自定义它的某些方面,他们将无法触及 Vendor3 API。
如何在不使用实现的情况下向库的使用者提供 myLibrary 的依赖 compileOnly API?或者他们是否需要最终使用 Vendor3 Jar 才能使这种方法可行?
谢谢。
【问题讨论】:
-
你解决了吗?
-
我没有。我暂时假设库的使用者如果需要访问该 API,则需要自己直接解决 compileOnly 依赖项。
标签: android gradle android-gradle-plugin android-library