Gradle - 如何将过滤器提取到单独的可重用函数?

时间:2015-10-08 14:52:46

标签: groovy gradle

我已经在带有过滤器的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
}

我尝试了其他各种方法,只是失败了构建,这种方式并没有应用过滤器。

我是否有办法将过滤器应用于每个'进入'?

1 个答案:

答案 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)
}