2016-06-14 107 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