我已经在带有过滤器的gradle构建脚本中定义了一个复制任务,但我希望能够将其提取出来,以便它可以在多个位置使用,而只需定义一次。
我尝试过这样的事情,但它不起作用
def subbingCopy = project.copySpec{
filter {
String line ->
line.replaceAll('\\$\\{project\\.version\\}', "${project.version}").
replaceAll('\\$\\{project\\.name\\}', "${project.name}")
}
}
package.doLast {
copy {
from ("from/path") {
include '**/*'
}
into ("to/path")
with subbingCopy
}
我尝试了其他各种方法,只是失败了构建,这种方式并没有应用过滤器。
我是否有办法将过滤器应用于每个'进入'?
答案 0 :(得分:2)
以下示例应该完成这项工作:
ext.someFilter = { String line ->
line.replaceAll('\\$\\{project\\.version\\}', "${project.version}").
replaceAll('\\$\\{project\\.name\\}', "${project.name}")
}
package.doLast {
copy {
from ("from/path") {
include '**/*'
}
into ("to/path")
filter(someFilter)
}