是它在某種程度上可能不執行任務的依賴性時任務將被跳過?在Gradle中跳過依賴執行被禁用的任務嗎?
在下面的例子,我想jar
(和jar
的依賴關係)如果執行runServerTests
當服務器已經在運行被執行以不。在這種情況下,服務器將由另一個進程啓動。
apply plugin: 'java'
task startServerIfNotRunning(dependsOn: jar) {
onlyIf { isServerNotRunning() }
...
}
task runServerTests(dependsOn: startServerIfNotRunning) { ... }
我寧願不添加onlyIf
到jar
任務,因爲這總是應該可以根據一個執行其他任務。 jar
任務也具有自己的依賴關係。
我不知道答案在這裏,但如果你的服務器依賴於罐子,罐子是過時的,爲什麼你不想要重新啓動服務器?如果罐子是最新的和所有它的依賴是最新的,然後它不花費你太多的時間爲jar任務不執行任何操作... – erdi 2013-04-25 17:26:10
當你這樣做有他的道理,我們確實有很多的子項目,因此即使所有內容都是最新的,也需要大約15-30秒才能完成「重新編譯」。如果可能的話,我想擺脫這個時間。大部分時間服務器將會是最新的。 – 2013-04-26 10:19:36
見http://stackoverflow.com/questions/18624391/how-to-set-onlyif-for-dependencies-of-gradle-task/18877504#18877504 – 2013-09-18 16:28:55