【发布时间】:2017-08-01 20:32:17
【问题描述】:
我有一个带有子模块的库项目,其中包含许多我想传递给开发人员应用程序的依赖项。例如,模块 A 可能包含所有必要的 appcompat 依赖项。
使用migration changes,我已将所有compile 案例更新为api,这不会影响任何事情。但是,我不再有权访问任何库依赖项。我只能使用我的库本身的代码和引用。
有没有办法解决这个问题?
我的库子模块的构建 gradle 文件之一可以在here 找到以供参考。
依赖关系:
dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:${KOTLIN}"
api "com.android.support:appcompat-v7:${ANDROID_SUPPORT_LIBS}"
api "com.android.support:support-v13:${ANDROID_SUPPORT_LIBS}"
api "com.android.support:design:${ANDROID_SUPPORT_LIBS}"
api "com.android.support:recyclerview-v7:${ANDROID_SUPPORT_LIBS}"
api "com.android.support:cardview-v7:${ANDROID_SUPPORT_LIBS}"
api "com.android.support.constraint:constraint-layout:${CONSTRAINT_LAYOUT}"
api "com.mikepenz:iconics-core:${ICONICS}@aar"
api "com.mikepenz:google-material-typeface:${IICON_GOOGLE}.original@aar"
api "com.afollestad.material-dialogs:core:${MATERIAL_DIALOG}"
api "com.jakewharton.timber:timber:${TIMBER}"
api "org.jetbrains.anko:anko-commons:${ANKO}"
}
编辑:
为了澄清,模块中的示例项目实际上确实可以正确构建,但是在任何其他应用程序中使用依赖项时都会出现问题,它是从 jitpack 中提取的。请参阅 this gradle 作为不会构建的示例。 我尝试过使用 api、实现、@aar 和传递的组合。
想一想,这可能是 jitpack 问题而不是 gradle 问题,但如果其他人有解决方案,我想听听。
【问题讨论】:
-
我对 bazel 有这个问题。不确定如何使用 gradle 解决此问题,但您可以使用关键字“瞬态依赖项”进行谷歌搜索。显然,最简单的方法是直接在模块 build.gradle 中提供模块所需的所有依赖项。
-
@uselessdinosaur 可能还有更多。我已经尝试过传递依赖,但它似乎不起作用,但经过仔细检查并从下面的答案来看,这可能是一个 jitpack 特定问题
标签: android gradle android-gradle-plugin build.gradle jitpack