我正在开发一个大型构建系统,我有以下任务:
:runTests
:moduleA:installDebug
:moduleA:installTest
:moduleB:installDebug
:moduleB:installTest
:moduleA:uninstallAll
:moduleB:uninstallAll
使用项目/构建结构:
build.gradle
settings.gradle
|
- moduleA
|
- build.gradle
|
- moduleB
- build.gradle
uninstallAll和install任务由Gradle android插件创建。
我希望:runTests
成为Exec类型的Gradle任务,该任务依赖于按此顺序执行的:moduleA:uninstallAll
,:moduleB:uninstallAll
,moduleA:installDebug
和moduleA:installTest
。
我正在尝试通过在顶级build.gradle文件中使用subproject
闭包来配置它,以创建单个runTests Exec命令,然后使用dependsOn指定应首先完成卸载和安装任务。
然而,这种方法似乎不起作用。无法找到插件创建的任务(即使它们与gradlew tasks --all
一起列出),或者完全忽略了由任务运行的buildscript。
创建这种依赖链的最佳做法是什么?
答案 0 :(得分:4)
据我所知,Android插件在游戏中很晚才创建任务,所以你可能需要将你的逻辑包装在gradle.projectsEvaluated { ... }
中。