3

我在 Jenkins 脚本中使用 Groovy dsl,我将“include”参数值传递给 Ant FileSet。

def ant = new AntBuilder()
def scanner = ant.fileScanner {     
  // grab ALL files requested to be run
  fileset(dir:"/jenkins/workspace/aJob") {
        def selectedFiles = params["testSuite"]
        include(name:"$selectedFiles")
  }
}

如果params["testSuite"]是选择文件的单个表达式,则它可以工作,例如

**/tests/*.java

如果params["testSuite"]指定为,则无法找到文件(在我看来,Groovy 无法按原样理解该值)

**/tests/test1.java, **/tests/test1.java

但是,对于 Ant,上述两个值都是正确的。

有人可以告诉我如何使这项工作吗?

4

1 回答 1

2

您在错误的级别中使用了逗号分隔的一个。您将它放在<include>元素而不是includes属性中(请参阅文档页面)。

所以要使用你会做的逗号方法

def ant = new AntBuilder()
def scanner = ant.fileScanner {
  // grab ALL files requested to be run
  def selectedFiles = params["testSuite"]
  fileset(dir:"/jenkins/workspace/aJob", includes: "$selectedFiles")
}

实际上,您可以使用逗号、空格或逗号空格(即使文档没有提及)。

于 2015-07-07T17:52:50.587 回答