我想使用可选输入(如果它存在),如果不存在则继续。
当我运行gradle -Dorg.gradle.warning.mode=all
时,我收到了一个弃用警告,仅指定输入:
在任务':addWorkingCopyInfo'的配置中发现了一个问题。通过TaskInputs和TaskOutputs方法注册无效输入和输出已被弃用,并计划在Gradle 5.0中删除。 - 为属性'$ 1'指定的文件'/ Users / robert / test / special-build-tag'不存在。
这是构建脚本中的任务:
task addWorkingCopyInfo(type: Exec) {
inputs.file file("tagFile") // deprecated if the file does not exist
outputs.file file("generated/taginfo")
executable "perl" args "..."
}
我已经看到如果我有一个自定义任务类,我可以添加一个@Optional
注释,但这不是这里的情况。
我最好的解决方案是为文件添加一个检查,如果存在则只将其作为输入。这似乎有效。
task addWorkingCopyInfo(type: Exec) {
def tagFile = new File("tagFile");
if (tagFile.exists()) {
inputs.file tagFile
}
outputs.file file("generated/taginfo")
executable "perl" args "..."
}
有更好/更多的Gradle-ish方法吗?
答案 0 :(得分:3)
方法inputs.files(...)
返回TaskInputFilePropertyBuilder
,提供方法optional()
和optional(boolean)
。
试试吧:
inputs.files('my-file').optional()