我觉得这个问题的答案很简单,但是我找不到。
我正在尝试用Kotlin创建一个Gradle扩展。我要做的第一个任务是有效地调用project.copy
任务,这样我就可以将源文件移动到构建目录并执行令牌替换(我知道,我还没有实现这一点)。
编译完成后,Gradle会识别该插件。(至少)有两个问题。编译器抱怨from
和into
或未使用。我的第一个提示是我做错了什么。第二个错误是,当我运行任务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
}
}
}
https://stackoverflow.com/questions/54229094
复制相似问题