2015-11-25 114 views
3

我創建的任務取決於build從我的任務所依賴的任務中排除任務

task packageJar(dependsOn: build, type: JavaExec) { 
    main = 'com.xxxx.util.KiePackageCreator' 
    classpath = sourceSets.main.runtimeClasspath 
} 

build任務調用其他任務,例如checkstyletest等 如何將它們排除在外?

我可以通過控制檯-x來做到這一點,但如何做到這一點內的任務?

回答

4

您可以skmply禁用此任務,通過設置它的enabled屬性設置爲false腳本的TJE根:

test.enabled = false 

但在這種情況下,thistasks永遠不會運行。如果你只是需要他們沒有運行,如果一些其他的任務調用,那麼您必須使用執行圖:

gradle.taskGraph.whenReady { 
    taskGraph -> 
     if (taskGraph.hasTask(packageJar)) { 
      test.enabled = false 
     } 
} 

,但不知道在那一刻,是否有可能改變這一屬性時的圖是準備。如果沒有,那麼你可以創建一個變量,並在任務中,你想排除,添加doFirst塊,這將根據這個變量值拋出StopExecutionException

+0

我明白了。因此,沒有收件箱的簡單解決方案,如'exlude:test,checkstyle'等。 – lapots

+0

@ user1432980最簡單的是使用'-x' falg,但是如果你不能也不想用'task.enabled = false'永久地排除一些任務,你必須做這樣一個複雜的解決方案。請閱讀此處https://docs.gradle.org/current/userguide/more_about_tasks.html#N10E33 – Stanislav

+0

哦!看到。我會研究它。 – lapots