Android gradle build:运行assembleDebug会调用项目依赖项的发布任务

时间:2013-08-07 13:55:16

标签: android gradle android-gradle android-build

运行assembleDebug时,会调用我所依赖的项目的发布相关任务。

e.g。 我有一个名为'x'的项目,它取决于'y'。

当我gradle assembleDebug时,它调用y:mergeReleaseProguardFiles,packageReleaseAidl等...等等。

1 个答案:

答案 0 :(得分:3)

编辑:不再是真的,使用Android Gradle Plugin 3.x。

这些库还会发布debugrelease个工件。如果项目具有flavor或自定义类型,那么也会创建它们。在模块之间,它会尝试自动匹配变体。如果不匹配,则需要提供matchingFallback以匹配模块之间的变体。更多信息可以在这里找到:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors

Android库模块仅发布"发布"构建类型。他们没有"调试"构建类型。即使您的应用程序模块构建调试版本,它也将使用库的发行版本。

你可以启用" debug"使用模块的build.gradle文件中的以下内容构建库依赖项的类型:

android {
  publishNonDefault true
  ...
}

然后,当您在其他模块中使用该依赖项时,您应该使用如下:

dependencies {
  releaseCompile project(path: ':moduleY', configuration: 'release')
  debugCompile project(path: ':moduleY', configuration: 'debug')
}

我在我的应用程序中使用相同的技巧。我有一个共享模块,我使用该模块的调试版本。在此处查找详细信息:

https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90