我想使用可选输入(如果存在),如果它不存在则继续 .
当我运行 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方法来做到这一点?
1 回答
方法
inputs.files(...)
返回TaskInputFilePropertyBuilder,它提供方法optional()
和optional(boolean)
.试一试: