如何获取自 Gradle 任务的最后一个 运行 以来更改的文件?
How to get the Files that have changed since the last run of a Gradle Task?
我有以下 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()
}
}
}
}
我有以下 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()
}
}
}
}