Chapter5:使用Gradle管理多模块构建
5.1 简述多模块构建
通常,一个多模块项目有一个根目录,在其子文件夹中包含所有的模块。我们需要在项目的根目录提供一个setting.gradle 文件来告知Gradle项目的结构以及哪个文件夹包含哪些模块。同时,每个模块都可以提供自己的build.gradle文件。
在settings.gradle中声明
include ':app',':library'
确保app和library模块包含在构建配置中。如果想让app模块依赖library模块,需要在app模块的build.gradle中添加:dependencies { implementation project(':library') }
如果想用子文件夹管理模块,需要做适当修改:
settings.gradle中声明:
include ':app',':libraries:library1',':libraries:library2'
//app模块依赖library1 dependencies { implementation project(':libraries:library1') }
执行模块任务:(假设有个wear模块)
- 1.切换到wear模块下,执行命令:
../gradle assembleDebug
。- 2.在主目录下,执行命令:
gradle :wear:assembleDebug
。
5.2 在Android Studio中运行模块任务
可以直接在Android Studio的Gradle工具窗中直接运行task:
加速多模块构建:
多内核计算机可以通过并行所有模块来使得构建过程更快。需要在gradle.properties文件中配置:
org.gradle.parallel=true
Gradle会基于可用的CPU内核,选择正确的线程数量,为防止同一模块同时执行两个任务的问题,每个线程只拥有一个完整的模块。
注意:模块耦合(两个模块相互依赖)会使并行构建无效。
5.3 参考资料
- Gradle For Android