2016-10-26 25 views
0

您能否幫我配置兩個檢查樣式任務,這些任務可能會失敗或者忽略錯誤?不幸的是,我沒有足夠的知識來自己做。改變另一個行爲的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 with ignoreFailures = false的新任務。 我想要checkstyle有兩個任務:第一個忽略失敗,第二個失敗在任何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') { 
} 

也許它不是最好的解決辦法,但它的短,它的工作原理