如何在自定义插件中编写dependsOn

sve*_*ver 3 groovy plugins 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)
Run Code Online (Sandbox Code Playgroud)

现在,我想从我的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)
 }
Run Code Online (Sandbox Code Playgroud)

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

project.tasks.create("makeJarPlugin1", MakeJarPluginTask.class){
 dependsOn("clearDist", "build")
}
Run Code Online (Sandbox Code Playgroud)

但这不能给出正确的输出。错误在最后一部分,我认为这不是使用dependsOn的正确方法,但是我无法获得如何使用它的方法。任何帮助将不胜感激。

lan*_*ava 5

Task task = project.tasks.create("makeJarPlugin1", MakeJarPluginTask.class);
task.dependsOn("clearDist", "build")
Run Code Online (Sandbox Code Playgroud)