2015-04-28 72 views
1

我有一個build.gradle文件,我使用Java插件,我有兩個自定義任務。刪除另一個任務的依賴任務?

task first(...) { 
} 

task second(...) { 
    dependsOn('compileJava') 
} 

我想的是,compileJava任務的Java插件的依賴於我的first task.I知道我可以做到這一點:

tasks.compileJava.dependsOn += first 

當我跑我的second任務,我想的是,compileJava任務不依賴於first任務。

只有當任務second運行時,我如何才能從compileJava任務中首先刪除dependsOn?

回答

2

調用project.gradle.startParameter.getTaskNames()將返回在此版本中執行的任務的名稱。然後你就可以使用返回值,以調理聲明tasks.compileJava.dependsOn += first在任務列表中是否執行包含任務second,即:

if (project.gradle.startParameter.taskNames.contains("second")) { 
     tasks.compileJava.dependsOn += first 
    } 
+0

我也這將有助於http://gradle.org/docs/ current/userguide/java_plugin.html –

+0

偉大的解決方案。謝謝! – confile