2012-10-18 46 views
0

我想在我的根項目中創建一個任務,爲一些子項目創建一個自定義TAR。創建幾個子項目使用的根級別gradle任務?

task archive(type: Tar) { 
    project.logger.info("Tar bundle :: ") 
    baseName = project.baseName 
    destinationDir = new File(project.buildDir.path) 
    archiveDir = new File(project.buildDir.path) 
    compression = Compression.GZIP 
    from (archiveDir) 
} 

我發現這個任務,但我所需要的,是在subproject.name發送和有任務使用buildDir和源代碼目錄從子項目調用任務的一個子項目。然後將存檔保存到子項目的/目標中。

這可能沒有爲每個子項目創建一個新的任務?

回答

1

如果每個子項目都應該創建自己的Tar,那麼您需要爲每個子項目創建一個任務。這與在subprojects { ... }中包裝任務聲明一樣簡單。您還必須從代碼中刪除所有出現的project.,加上整個baseName行。 (無論如何,所有這些都是多餘的。)

new File(project.buildDir.path)buildDir相同。而不是logger.info("Tar bundle :: "),你可能需要doFirst { logger.info("Tar bundle :: ") }。否則,無論執行哪個任務,都會爲每個構建記錄此消息。

相關問題