0

我有一个 gradle 任务,它需要一个目录并将其复制到另一个目录中。

from({ framework.outputDirectory }) into(File("/Users/user/Desktop/"))

这是完整的 gradle.kts 任务

val generateIOSArm64Framework by tasks.creating(Sync::class) {
    group = "build"
    val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
    val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator"
    val targetName = "iosArm64"
    val framework =
        kotlin.targets.getByName<KotlinNativeTarget>(targetName).binaries.getFramework(mode)
    inputs.property("mode", mode)
    dependsOn(framework.linkTask)
    from({ framework.outputDirectory })
    into(File("/Users/user/Desktop/"))
}

我以为它只会复制framework.outputDirectoryDesktop中,但是当我运行该任务时,它删除了我在桌面上的所有文件(包括一些未备份的项目)。我无法恢复这些文件。

问题:为什么 gradle intodelete 的文件?它是否每次都会创建新文件夹并覆盖所有内容?

4

1 回答 1

1

您的任务不是类型Copy,而是类型Sync

此任务与Copy任务类似,不同之处在于目标目录将仅包含复制的文件。除非指定了 a,否则在复制文件之前将删除目标目录中存在的所有文件preserve(Action)

于 2021-07-25T10:51:45.003 回答