我不知道groovy還不夠好,只是試圖通過現在得到。我有以下gradle這個現在工作的權利,但我不知道是否有寫它一個更簡潔的方式...有沒有辦法寫出更簡潔的gradle?
task staging(type: Sync) {
from(stagingDir) {}
into toStagingDir
}
task syncJars(type: Sync) {
from(configurations.compile) {}
from(fixedLibDir) {}
into toStagingLibsDir
}
task copyMainJar(type: Copy) {
from(libsDir) {}
into toStagingLibsDir
}
task myZip(type: Zip) {
archiveName "bacnet.zip"
from(buildDir) {
include project.name+'/**'
}
}
syncJars.dependsOn('staging')
copyMainJar.dependsOn('syncJars')
myZip.dependsOn('copyMainJar')
assemble.dependsOn('myZip')
或許有某種方式把它寫像這樣...
task prepareStaging {
staging from stagingDir into toStagingDir
syncJars from configurations.compile from fixedLibDir into toStagingLibsDir
copyMainJar from libsDir into toStagingLibsDir
myZip archiveName "bacnet.zip" from buildDir { include project.name+'/**' }
}
assemble.dependsOn('prepareStaging')
理想情況下,我喜歡自我記錄代碼。在第二個例子中,對於下一個開發者來說,我的意思是每個這些小任務都不可重用。這非常明確(即自我記錄)。在第一種方式中,我編寫了絕對不清晰的代碼,因爲這些任務可以從其他項目文件中重用。
任何方式來寫在這個更簡單的形式?
注意:我仍然希望所有的UP-TO-DATE檢查都能像往常一樣順利進行!
感謝, 院長
肯定有一些用處(我會很好地使用它),但是我真正想知道的是,如果有一種方法可以在任務中編寫任務,以便與下一個開發人員溝通,那麼這個任務實際上是一個工作單元應該捆綁在一起。 –
我明白了。請參閱原文,瞭解一些細節。 – rodion