gradle from( "originPath" ) 和 into( "targetPath" ) 如何以及为什么删除文件?



我有一个gradle任务,它获取一个目录并将其复制到另一个目录

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

这里是完整的gradle。康泰斯任务

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,但当我运行该任务时,它删除了我所有的文件在桌面上(包括一些非备份的项目)。我无法恢复那些文件。

:为什么gradleinto删除文件?它是否每次都创建新文件夹并重写所有内容?

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

此任务与Copy任务类似,只是目标目录将只包含复制的文件。在复制文件之前,将删除目标目录中存在的所有文件,除非指定了preserve(Action)

最新更新