Gradle 如果源目录不存在,则梯度复制任务失败

Gradle 如果源目录不存在,则梯度复制任务失败,gradle,copy,Gradle,Copy,我正在使用Gradle创建一个构建脚本。我想保护脚本不受错误属性的影响,脚本中的一个任务是简单复制任务,我注意到,当我从参数中将不存在的目录设置为时,该任务将继续执行跳过任务:copySpecificPlatform',因为它没有源文件。 在这种情况下,是否有办法导致复制任务失败?您可以尝试: task cp(type: Copy) { from 'empty' into 'target' inputs.sourceFiles.stopExecutionIfEmpty()

我正在使用Gradle创建一个构建脚本。我想保护脚本不受错误属性的影响,脚本中的一个任务是简单复制任务,我注意到,当我从参数中将不存在的目录设置为
时,该任务将继续执行
跳过任务:copySpecificPlatform',因为它没有源文件。

在这种情况下,是否有办法导致复制任务失败?

您可以尝试:

task cp(type: Copy) {
    from 'empty'
    into 'target'
    inputs.sourceFiles.stopExecutionIfEmpty()
}
每个都有自己的源文件,这些源文件都有配置所需行为的特殊文件。

这对我很有用:

task copySpecificPlatform(type: Copy) {
    from 'source/directory'
    into 'target/directory'
    if(inputs.sourceFiles.empty) throw new StopExecutionException("No files found")
}

注意,通过这种方式,测试在初始化时完成。这意味着:如果第一次清理删除了文件,第二次清理也将失败。不幸的是,将其置于doFirst也不是一个选项,因为如果文件不存在(gradle 4.2)
stopExecutionIfEmpty
不推荐使用,则不会执行此选项。