如何在自定义插件

时间:2016-02-04 08:11:49

标签: plugins groovy gradle

我的build.gradle中有一个任务:

task makeJar(type: Copy) {
delete('dist/')
from('build/intermediates/bundles/release')
into('dist/')
include('classes.jar')
def jarName = new VersionName().getNameWithVersion() + '.jar'  
rename('classes.jar', jarName)
}
makeJar.dependsOn('clearTask', build)

现在,我想从build.gradle中删除它并创建一个这样的自定义插件:MakeJarTask.groovy(这是在eclipse项目中)

class MakeJarPluginTask extends Copy{
@TaskAction
def makeJar(){
    logger.lifecycle("creating a jar *********************")
    delete('dist/')
    from('build/intermediates/bundles/release')
    into('dist/')
    include('classes.jar')
            def jarName = new VersionName().getNameWithVersion() + '.jar'
    rename('classes.jar', jarName)
 }

在callGroovy.class(实现插件)中调用此任务

project.tasks.create("makeJarPlugin1", MakeJarPluginTask.class){
 dependsOn("clearDist", "build")
}

但这并没有给出正确的输出。 错误是最后一部分,我认为这不是使用dependsOn的正确方法,但我无法得到如何使用它。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:5)

Task task = project.tasks.create("makeJarPlugin1", MakeJarPluginTask.class);
task.dependsOn("clearDist", "build")