改变另一个行为的Gradle任务

时间:2016-10-26 11:46:08

标签: gradle checkstyle

你能帮我配置两个无法构建或忽略错误的checkstyle任务吗?不幸的是,我自己没有足够的知识来做这件事。

我有checkstyle配置

apply plugin: 'checkstyle'
checkstyle {
    toolVersion = "7.1.1"
    sourceSets = [sourceSets.main]
    ignoreFailures = true
    showViolations = true
    reportsDir = file("$project.buildDir/checkstyleReports")
    configFile = file("$rootDir/gradle/checkstyle.xml")
    configProperties = ['baseDir': "$project.projectDir"]
}

Checkstyle插件增加了另外一项任务:checkstyleMain,checkstyleTest。

我需要创建扩展checkstyleMain但覆盖属性的新任务 ignoreFailures

我在下一个方面看到它(但它不起作用):

checkstyleMain {
    ignoreFailures = true
}

task forceCheckstyleMain(type: Checkstyle) {
    ignoreFailures = false
}

1 个答案:

答案 0 :(得分:0)

你可以在这里看到与其他想法完整讨论的主题https://discuss.gradle.org/t/gradle-task-that-changes-behavior-of-another-one/20295/7

要回答我的问题,可以通过下一个方式解决

checkstyleMain {
    gradle.taskGraph.whenReady { graph ->
        ignoreFailures = !graph.hasTask(":" + project.name + ":forceCheckstyleMain")
    }
}

task forceCheckstyleMain(dependsOn: 'checkstyleMain') {
}

也许它不是最好的解决方案,但它很简短且有效