我正在开发一个取决于某些第三方aars和jar的安卓库。
目前,这些依赖项是在库模块的gradle buildscript中声明的,如下所示:
repositories {
flatDir{
dirs 'libs', 'android-libs'
}
}
dependencies{
compile(name: 'threetenabp-1.0.5', ext: 'aar')
compile fileTree(include: ['*.jar'], dir: 'libs')
}
然而,这导致依赖性'正在构建到aar中的类,在应用程序中使用库时可能会导致冲突。
如何在不实际将其打包到库中的情况下从库中引用这些依赖项?
我尝试更改"编译"提供"提供"然后将文件编译到应用程序中,但是当我这样做时,我的库无法构建。
答案 0 :(得分:0)
在https://docs.gradle.org/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies阅读一些内容后,我最终发现使用compile fileTree
会将依赖项打包到输出库中。要避免这种情况,请使用以下语法单独声明每个依赖项:
dependencies {
compile: name: 'filename-without-extension'
}
依赖关系将不再打包到输出中。
使用输出aar的项目仍然需要包含保存jar文件的flat-dir存储库,如下所示:
repositories {
flatDir{
dirs 'libs'
}
}