Gradle无法找到'lint'作为自定义任务的依赖项

时间:2015-04-15 18:45:15

标签: android android-studio build gradle android-gradle

我想创建一个简单易用的Gradle任务,它运行我希望持续集成服务器运行的所有内容。目前,我的app / build.gradle文件包含以下代码(其余部分省略):

task continuousIntegrationDebug(dependsOn: [assembleDebug, lint, runCheckstyle, runPmd, runFindbugs]) {
}

可悲的是,Gradle抱怨它找不到lint(lintDebug和lintRelease也一样):

A problem occurred evaluating project ':app'.
> Could not find property 'lint' on project ':app'.

有趣的是,当我运行支票时,以下行有效:

check.dependsOn 'lint'

以下外部调用也起作用(来自项目根目录):

./gradlew app:lint

我忘记了什么?我正在使用版本com.android.tools.build:gradle:1.1.0和最新版本的构建工具等。

另外,我必须首先在外部运行pmd,checkstyle和findbugs,然后才能运行任务(之前没有安装)。如何确保在第一次在Android Studio中同步Gradle文件时始终下载它们?

1 个答案:

答案 0 :(得分:1)

这是一个提示,而不是一个有效的解决方案,但它可能会指向正确的方向。

我检查了内部Groovy代码,它添加了lint任务[1]。他们做了类似的事情:

 lint = project.tasks.create("lint", Lint)

...以便定义Lint任务。那么也许您需要先自己创建lint任务?

我偶然发现的另一个解决方案在[2]中指出:

def compileLintTask = project.tasks.find {it.name == 'compileLint'}
    compileLintTask.dependsOn(copyLintJar)

使用tasks.find来查找compileLint任务。也许你可以用同样的方式找到你正在寻找的任务?

  1. https://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
  2. https://engineering.linkedin.com/android/writing-custom-lint-checks-gradle