В моем build.gradle.kts
я делаю замену текста при распаковке архива. Я использую filesMatching
для выполнения замены.
Моя проблема заключается в том, что когда я заменяю "Your Momma"
в исходном тексте сценария на что-то другое и повторно запускаю задачу, Gradle по-прежнему сообщает о ее актуальности вместо того, чтобы очистить распакованный каталог и повторить операцию замены.
> Task :downloadZipFile
Download https://github.com/michel-kraemer/gradle-download-task/archive/1.0.zip
> Task :downloadAndUnzipFile UP-TO-DATE
My build.gradle.kts
равно
import de.undercouch.gradle.tasks.download.Download
group = "org.example"
version = "1.0-SNAPSHOT"
plugins {
id("de.undercouch.download").version("4.0.4")
}
tasks {
val downloadZipFile by registering(Download::class) {
src("https://github.com/michel-kraemer/gradle-download-task/archive/1.0.zip")
dest(File(buildDir, "1.0.zip"))
}
val downloadAndUnzipFile by registering(Copy::class) {
dependsOn(downloadZipFile)
from(zipTree(downloadZipFile.get().dest))
into(buildDir)
val replacement = "Your Momma"
val spec = project.copySpec {
this.filter { _: String -> replacement }
}
filesMatching("**/*.txt") {
with(spec)
}
}
}
Я также попытался использовать свойство проекта в качестве источника замены текст и изменение его значения также не делает кэш недействительным.
val replacement = project.findProperty("replacement") as String