2016-10-26 2 views
0

Не могли бы вы помочь мне настроить две задачи checkstyle, которые либо вызывают сбои, либо игнорируют ошибки? К сожалению, у меня недостаточно знаний, чтобы сделать это сам.Задача Gradle, которая изменяет поведение другого

Я имею 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 
} 
+0

Вы просто хотите расширить задачу или отменить его? –

+0

Я думал, что переопределение возможно только после расширения. Основная идея: мне нужна новая задача, которая запускает checkstyleMain с ignoreFailures = false. Я хочу иметь две задачи для checkstyle: сначала проигнорировать сбои и выполнить второй сбой при любом нарушении контрольной строки – Geniy

+0

Mh он должен работать с кодом, который вы показали. Происходит ли какая-либо ошибка или какой результат? –

ответ

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') { 
} 

может быть, это не самое лучшее решение, но это коротко, и это работает

 Смежные вопросы

  • Нет связанных вопросов^_^