使用Kotlin实施插件时,如何扩展Gradle的任务?

时间:2019-01-17 04:32:53

标签: gradle kotlin

我觉得这个答案很简单,但是找不到。

我正在尝试使用Kotlin创建Gradle扩展。我要做的第一个任务是有效地调用$(this).text('Save').siblings().text('Edit');任务,以便可以将源文件移动到构建目录并执行令牌替换(我知道,我还没有实现)。

这将进行编译,并且Gradle可以识别该插件。有(至少)两个问题。编译器抱怨$("body").on('click','.clk',function(){ var edit_id=$(this).attr("data-id"); $(this).text('Save').siblings().text('Edit'); /*if($(this).text()==='Edit'){ $(this).text('Save'); } else{ $(this).text('Edit'); }*/ });<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a class="clk" data-id="1" >Edit</a> <a class="clk" data-id="2" >Edit</a> <a class="clk" data-id="2" >Edit </a> <a class="clk" data-id="2" >Edit</a>或未使用。我的第一个线索是我做错了什么。第二个是当我运行Gradle告诉的任务时,我会遇到此错误:

project.copy

代码:

from

2 个答案:

答案 0 :(得分:1)

我想我已经找到了解决方案,看起来frominto是函数。

@TaskAction
fun copyFiles() {
    inputDirectory.apply {
        parentFile.mkdirs()
    }
    project.copy{ copySpec ->
        copySpec.from(inputDirectory)
        copySpec.into(outputDirectory)
    }
}

答案 1 :(得分:0)

您要声明frominto的新值,而不是分配现有值。

您的代码应为:

    @TaskAction
fun copyFiles() {
    inputDirectory.apply {
        parentFile.mkdirs()
    }
    project.copy{
        from(inputDirectory)
        into(outputDirectory)
    }
}