Gradle 使用渐变类型的任务如何排除不同类型的文件?
使用Gradle类型的任务,我们如何排除以字符串开头和结尾的文件名的文件副本Gradle 使用渐变类型的任务如何排除不同类型的文件?,gradle,Gradle,使用Gradle类型的任务,我们如何排除以字符串开头和结尾的文件名的文件副本 def contentSpec = copySpec { exclude { it.file.name.startsWith('img') it.file.name.endsWith('gif') } from 'src' } task copyImages (type: Copy) { with contentSpec into 'Dest' } 在运行gradlecopyim
def contentSpec = copySpec {
exclude {
it.file.name.startsWith('img')
it.file.name.endsWith('gif')
}
from 'src'
}
task copyImages (type: Copy) {
with contentSpec
into 'Dest'
}
在运行gradlecopyimages
时,它会排除以gif结尾的文件,但不排除以img开头的文件
有什么方法可以同时实现这两个目标吗?您忘记了两个条件之间的or(|
):
exclude { it.file.name.startsWith('img') || it.file.name.endsWith('gif') }
闭包的值是其最后一个表达式的值。由于代码中的最后一个表达式是it.file.name.endsWith('gif')
,这是闭包的值,因此当it.file.name.endsWith('gif')
为true时,文件将被排除
当然,您也可以使用两种排除:
exclude {
it.file.name.startsWith('img')
}
exclude {
it.file.name.endsWith('gif')
}
您忘记了两个条件之间的or(|
):
exclude { it.file.name.startsWith('img') || it.file.name.endsWith('gif') }
闭包的值是其最后一个表达式的值。由于代码中的最后一个表达式是it.file.name.endsWith('gif')
,这是闭包的值,因此当it.file.name.endsWith('gif')
为true时,文件将被排除
当然,您也可以使用两种排除:
exclude {
it.file.name.startsWith('img')
}
exclude {
it.file.name.endsWith('gif')
}