Checkstyle插件不会添加gradle任务

时间:2017-11-24 19:26:25

标签: android gradle checkstyle gradle-plugin

我想在我的gradle项目中使用checkstyle插件,gradle文档说它会添加一些任务: https://docs.gradle.org/current/userguide/checkstyle_plugin.html

checkstyleMain, checkstyleTest, checkstyleSourceSet

我将此添加到我的app build.gradle文件中:

apply plugin: 'checkstyle'

我想从cmd运行gradle任务来执行代码样式检查,但是没有一个checkstyle任务。我输入以下内容检查了整个列表:

./gradlew tasks

我还尝试将checkstyle jar作为库依赖项添加到app模块。 任何人都可以告诉我我做错了什么,我怎么能得到我的checkstyle任务?

3 个答案:

答案 0 :(得分:3)

嗯,checkstyle插件会在其他任务虚拟任务组中添加其任务。这些实际上是已分配给任务组的任务。因此,只有在您运行./gradlew tasks --all时才会显示它们(请注意--all)。

完成 build.gradle

apply plugin: 'java';
apply plugin: 'checkstyle';

然后运行./gradlew tasks --all,输出:

<...snip...>
Other tasks
-----------
checkstyleMain - Run Checkstyle analysis for main classes
checkstyleTest - Run Checkstyle analysis for test classes
<...snip...>

如果您希望Checkstyle任务在没有--all的情况下显示,请将它们分配给任务组,例如:

tasks.withType(Checkstyle).each {
    it.group = 'verification'
}

答案 1 :(得分:1)

您还需要一个checkstyle配置文件,方法是在文档中放置一个default location或明确配置它。

例如:

checkstyle {
  config = resources.text.fromFile('config/checkstyle.xml')
}

答案 2 :(得分:1)

看看使用Gradle构建的其他Android项目,运行checkstyle(感谢Square)我发现我需要为要显示的任务做一些设置。如果没有任务声明,我仍然会看到我的初始错误。

的build.gradle:

...
apply plugin: 'checkstyle'

...

checkstyle {
    configFile rootProject.file('checkstyle.xml')
    ignoreFailures false
    showViolations true
    toolVersion = "7.8.1"
}

task Checkstyle(type: Checkstyle) {
    configFile rootProject.file('checkstyle.xml')
    source 'src/main/java'
    ignoreFailures false
    showViolations true
    include '**/*.java'
    classpath = files()
}

// adds checkstyle task to existing check task
afterEvaluate {
    if (project.tasks.getByName("check")) {
        check.dependsOn('checkstyle')
    }
}