2016-06-14 111 views
0

當我寫在自定義插件中Copy類型的任務,我這樣做:編寫自定義插件

class CopyJarsTask extends DefaultTask { 
    @TaskAction 
    def copyJars(){ 
     project.copy { 
     from('libs') 
     include("**/*") 
     into "jars" 
     } 
    } 
} 

同樣,我想寫Zip類型的任務,但我們不」在這種情況下,沒有任何東西像project.zip。我如何在自定義插件任務類中編寫類型爲Zip的任務?

+0

你確定它的工作原理配置任務的行爲?你能舉個例子嗎? – Opal

+0

如果你的意思是project.copy,那麼我相信它的工作 – sver

+0

是的,如果它位於註釋的方法。如果你只註釋了'project.copy',它就會失敗。 – Opal

回答

0

您需要擴展Zip類,並在構造例如爲:

class CopyJarsTask extends Zip { 

    CopyJarsTask() { 
     from 'libs' 
     baseName = 'libs' 
    } 
} 

task archive(type: CopyJarsTask) 
+0

@TaskAction不是必需的嗎?我將如何運行此任務 – sver

+0

@sver,事實並非如此。任務可能不包含任何操作,但在這種情況下,它將從'Zip'任務繼承。你只需要配置任務。你知道gradle中的執行vs配置嗎? – Opal

+0

我有一個問題。在那裏我應該寫任務檔案(類型:CopyJarTask)。它在同一班嗎?另外,我在構造函數中給archiveName,from,include,exlude,destinationDir。那很好嗎? – sver