我有以下 gradle 任务:
class MyTranslateTask extends DefaultTask {
@InputFiles FileCollection srcFiles
@OutputDirectory File destDir
@TaskAction
def run() {
...
}
}
如何从我的 srcFiles
中获取自上次运行此任务以来已更改的所有文件?
最佳答案
Gradle 1.6 引入了一项名为 IncrementalTasksInputs
的孵化功能,允许您访问自上次任务运行以来更改或删除的文件。
引用:https://gradle.org/docs/current/dsl/org.gradle.api.tasks.incremental.IncrementalTaskInputs.html
class IncrementalReverseTask extends DefaultTask {
@InputDirectory
def File inputDir
@OutputDirectory
def File outputDir
@TaskAction
void execute(IncrementalTaskInputs inputs) {
inputs.outOfDate { change ->
def targetFile = project.file("$outputDir/${change.file.name}")
targetFile.text = change.file.text.reverse()
}
inputs.removed { change ->
def targetFile = project.file("$outputDir/${change.file.name}")
if (targetFile.exists()) {
targetFile.delete()
}
}
}
}
关于java - 如何获取自上次运行 Gradle 任务以来已更改的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805346/