如何在任務執行後同步兩個目錄?我能做到這一點是這樣的:使用Gradle同步目錄
task syncDirs(type: Sync) {
...
}
task someTask {
doLast {
syncDirs.execute()
}
}
但法「執行」是內部的,我必須避免它。
感謝您提前回答。
如何在任務執行後同步兩個目錄?我能做到這一點是這樣的:使用Gradle同步目錄
task syncDirs(type: Sync) {
...
}
task someTask {
doLast {
syncDirs.execute()
}
}
但法「執行」是內部的,我必須避免它。
感謝您提前回答。
根據您的具體需求,可以使用syncDirs.dependsOn(someTask)
,或致電delete
和copy
方法內someTask.doLast
(這是目前是如何Sync
實現)。
task myTask << {
copy {
from 'src_dir'
into 'dst_dir'
include 'myfile.txt'
}
sync {
from "src_dir/foo"
into "dst_dir/bar"
}
}
在Gradle 1.10中,您可以在單個任務中執行復制文件和同步目錄等任務。我更喜歡這樣做有單獨的任務進行復制和同步。
對於同步,如上所述做單獨刪除和複製的想法看起來很乏味。我很高興我可以撥打sync
來做到這一點。
是的,當我要爲自己的任務編寫自己的插件時,我找到了方法「sync」。 :)無論如何謝謝你的答案。 – briarheart
其他任務中的同步塊在2.0中似乎已損壞或已被刪除。你有沒有經歷過? – billmag
我想將「someTask」和同步作爲單個動作執行,所以我確實在「doLast」中使用了「copy」和「ant.delete」方法。但我認爲既然「項目」有方法「複製」,即類似於「複製」任務,那麼採用類似於「同步」任務的方法「同步」會很好。無論如何謝謝你的答案。 – briarheart
您可以使用Gradle的'delete'而不是'ant.delete'。 –
是的,但據我所知,Gradle的「刪除」不允許使用通配符(例如'include:「**/*。java」')。 – briarheart