1

我在 Mac 上使用 Android Studio 1.3.2。

Gradle 版本列为 2.2.1,Android Plugin 版本为 1.3.1。

我已经应用了FindBugs Gradle 插件,并且我创建了一个任务,该任务成功地在目录“build/intermediates/classes”上运行分析。

为了在 Gradle Sync 上触发此任务,我将其作为依赖项添加到preBuild任务中,如下所示:

preBuild.dependsOn findBugs

这种依赖的问题在于,在预构建时,生成的类文件要么不存在(第一次同步),要么过时(保留上一次同步)。基本上,我希望我的任务在创建 'build/intermediates/classes' 目录后立即运行,或者在作为 'Sync' 操作的一部分刷新文件时立即运行

查看可用任务,我可以看到“干净”任务具有以下描述:

clean - Deletes the build directory.

但是,我看到的其他任务都没有描述目录的创建。我的第一个想法是“嗯,它必须是构建任务,对吧?”。不幸的是,像往常一样,它并不是那么简单(按下 gradle 'sync' 按钮,当我将它作为依赖项添加到 'build' 任务时不会触发我的任务)。没有这样的任务吗?如果是这样,哪个任务最适合我想要实现的目标?

4

1 回答 1

1

您可以使用./gradlew tasks查看所有任务

构建任务是主要任务。它构建一切、生成 APK 并运行所有检查。

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

check.dependsOn 'findbugs'

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

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

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

这将编译源代码,以防您运行 findbugs 之前没有编译它。

于 2015-09-04T20:32:27.507 回答