首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在使用Kotlin实现插件时,如何为Gradle扩展任务?

在使用Kotlin实现插件时,如何为Gradle扩展任务?
EN

Stack Overflow用户
提问于 2019-01-17 12:32:53
回答 2查看 492关注 0票数 0

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

我正在尝试用Kotlin创建一个Gradle扩展。我要做的第一个任务是有效地调用project.copy任务,这样我就可以将源文件移动到构建目录并执行令牌替换(我知道,我还没有实现这一点)。

编译完成后,Gradle会识别该插件。(至少)有两个问题。编译器抱怨frominto或未使用。我的第一个提示是我做错了什么。第二个错误是,当我运行任务Gradle告诉我这个错误时:

* What went wrong:
Execution failed for task ':gsqlCopySources'.
> Cannot convert path to File. path='null'

代码:

import org.gradle.api.DefaultTask
import com.optum.giraffle.GsqlExtension
import org.gradle.api.tasks.*
import java.io.File

open class CopySources: DefaultTask() {

    private val extension = project.extensions.run {
        findByName("gsql") as GsqlExtension
    }
    @OutputDirectory
    val outputDirectory: File = project.file("${project.buildDir}/${extension.scriptPath}")

    @InputDirectory
    val inputDirectory: File = project.file("${project.rootDir}/${extension.scriptPath}")

    init {
        group = "build"
        description = "Copy gsql scripts to build directory performing token replacement"

    }

    @TaskAction
    fun copyFiles() {
        inputDirectory.apply {
            parentFile.mkdirs()
        }
        project.copy{
            val from = inputDirectory
            val into = outputDirectory
        }
    }
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54229094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档