【发布时间】:2016-04-22 12:32:01
【问题描述】:
我有一个 Android 应用项目,其中包含单独的 android 库模块,它作为二进制文件发布。我想添加一种在从源构建库或使用已发布工件之间切换 gradle 的功能。 Android 应用默认依赖二进制工件:
compile "com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}"
现在我希望我的二进制工件被源代码替换,所以我在根 build.gradle 文件中添加以下代码:
configurations.all {
resolutionStrategy {
dependencySubstitution {
substitute module("com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}") with project(':mylibrary')
}
}
但是,当我尝试构建 gradle 时,仍在使用二进制工件。这里有什么问题?
另外有趣的是,如果我将依赖替换代码移动到 allprojects 部分或应用程序模块 build.gradle 文件,则 gradle 无法构建并显示以下消息:
Error:Module version MyApplication:app:unspecified, configuration '_debugCompile' declares a dependency on configuration 'default' which is not declared in the module descriptor for MyApplication:mylibrary:unspecified
【问题讨论】:
-
看来this android plugin bug可能与问题有关
标签: android gradle android-gradle-plugin dependency-management