Gradle - 哪个任务创建了 'build' 目录?

Gradle - Which task creates the 'build' directory?

我在 Mac 上使用 Android Studio 1.3.2。

Gradle 版本列为 2.2.1,Android 插件版本 1.3.1。

我已经应用了 FindBugs Gradle plugin,并且我创建了一个任务,成功地 运行 对目录 'build/intermediates/classes'.

进行了分析

为了在 Gradle 同步时触发此任务,我已将其添加为 preBuild 任务的依赖项,如下所示:

preBuild.dependsOn findBugs

此依赖项的问题是,在预构建时,生成的 class 文件要么不存在(第一次同步),要么过时(从上一次同步中保留下来)。基本上,我希望我的任务在 'build/intermediates/classes' 目录创建后立即 运行,或者当作为 'Sync' 操作的一部分刷新那里的文件时 .

查看可用任务,我可以看到 'clean' 任务具有以下描述:

clean - Deletes the build directory.

但是,我看到的 none 其他任务描述了目录的 创建 。我的第一个想法是 "Well, it's got to be the build task, right?"。不幸的是,和往常一样,它并不是那么简单(按下 gradle 'sync' 按钮,当我将它添加为 'build' 任务的依赖项时不会触发我的任务)。没有这样的任务吗?如果是这样,哪项任务最适合我要实现的目标?

您可以使用 ./gradlew tasks

查看所有任务

build 任务是主要任务。它构建一切,生成 APK 和 运行s 所有检查。

我建议您将以下内容添加到 build.gradle 文件中:

check.dependsOn 'findbugs'

所以当你运行 check 任务时,它也会执行 findbugs。

然后还要为编译任务设置对findBugs的依赖:

task findbugs(type: FindBugs, dependsOn: 'compileDebugSources') {...}

这将编译源代码,以防您 运行 在没有事先编译的情况下发现错误。