项目级build.gradle是否仍需配置clean()任务?
顶级build.gradle里的clean任务到底要不要写?
先给结论:在Android Studio Koala(2024.1.1)+ Gradle插件8.5.2的环境下,完全不需要在顶级build.gradle里显式定义clean任务。
为什么旧书里会提这个?
你看的旧书对应Android Studio Arctic Fox版本,当时的项目模板里确实会在顶级build.gradle里加一个空的clean任务,就像书中说的“几乎没用”——这个写法从一开始就是冗余的,可能只是谷歌用来演示自定义任务的例子,实际功能上完全没必要。
现在的机制是怎样的?
Android Gradle插件(AGP)会自动为每个模块创建clean任务,负责清理该模块的build/目录等构建产物。而顶级项目的clean任务是Gradle自动生成的聚合任务,它会自动依赖所有子模块的clean任务。当你执行./gradlew clean命令时,Gradle会自动触发所有模块的清理操作,根本不需要你手动写这个任务的定义。
怎么验证?
打开终端,在项目根目录执行./gradlew tasks,在“Build tasks”分类下就能看到clean任务,说明它已经默认存在。执行./gradlew clean也会正常清理所有模块的构建产物,和你有没有显式定义这个任务完全无关。
内容的提问来源于stack exchange,提问作者sfinja
相关产品推荐
相关产品推荐

