android - 在多项目设置中,Gradle 评估每个子项目。我可以忽略一些子项目吗?

标签 android build gradle android-studio

我在 Gradle 中有以下多项目设置,用于构建多个使用几个库的 Android 应用程序:

假设我的根目录是 /workspace

目录结构如下(不完整):

/workspace/                         --> root dir for the gradle build
/workspace/settings.gradle
...             
/workspace/myapp1/Android/          --> contains the 1st app (has a build.gradle) 
/workspace/myapp2/Android/          --> contains the 2nd app (has a build.gradle) 
...
/market_licensing/library/          ---> contains a lib (has a build.gradle)
/play_apk_expansion/downloader_library/ ---> another lib (has a build.gradle)
/workspace/中的

settings.gradle 如下所示:

include ':market_licensing:library'
include ':play_apk_expansion:downloader_library'

include ':myapp1:Android'
include ':myapp2:Android'

当我在其中一个应用程序目录中运行 gradle build 时,它起作用了: 例如,/workspace/myapp1/Android>gradle clean 运行良好。

但是,这也会评估 myapp2 的 build.gradle 项目。

根据 Gradle 手册,这是预期的。在 http://www.gradle.org/docs/current/userguide/multi_project_builds.html ,部分 56.3。多项目构建的执行规则它说“Gradle 总是评估多项目构建的每个项目并创建所有现有的任务对象。”。

我的问题是这会不必要地减慢我的构建速度。不必要的,因为当我构建 myapp1 时,我不关心 myapp2。我希望库处于良好状态,但我不关心 myapp2。这对于 2 个应用程序来说并不可怕,但想象一下有 20 个应用程序。我希望能够尽快构建我当前正在开发的应用程序。

有没有办法忽略其他子项目,即使是在评估阶段? 或者是否有另一种方法来设置依赖于相同库但不相互依赖的多个项目?

最佳答案

正如您所指出的,gradle 中的默认行为是评估所有项目。有计划(并且还开始了初步工作)在未来使它更细粒度。现在您可以检查孵化功能“按需配置”。也许这对你有帮助。看看http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:cross_project_configuration详情

干杯,

雷内

关于android - 在多项目设置中,Gradle 评估每个子项目。我可以忽略一些子项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19256713/

相关文章:

c - 在 Windows 中构建 go 项目时运行 gcc 失败

build - 了解 CMake 背后的目的

tomcat - 代码之家 : difference between existing and installed configuration?

android - 将 Gradle 与现有的 Android 项目结合使用

gradle - gradle protobuf插件不起作用

gradle - Gradle-复制任务完成操作后如何执行某些操作?

android - 有什么办法可以在 TabLayout 中使用 SpannableString 吗?

android - 使用 aapt.exe 工具将资源添加到 apk 文件?

android - 与另一个应用程序集成

android - Android 中 EditText 的马拉地语字体支持