AntBuilder (groovy) 以逗号分隔文件 (FileSet "include")
AntBuilder (groovy) with comma separated files (FileSet "include")
我在 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"]
是 select 文件的单个表达式,例如
**/tests/*.java
如果 params["testSuite"]
指定为
,则无法找到文件(在我看来 Groovy 无法按原样理解该值)
**/tests/test1.java, **/tests/test1.java
但是,对于 Ant,以上两个值都是正确的。
谁能告诉我如何才能完成这项工作?
您在错误的级别中使用逗号分隔。您将它放在 <include>
元素而不是 includes
属性中(请参阅 doc page)。
所以要使用你会做的逗号方法
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")
}
实际上,您可以使用逗号、space 或逗号 space(即使文档没有提及)。
我在 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"]
是 select 文件的单个表达式,例如
**/tests/*.java
如果 params["testSuite"]
指定为
**/tests/test1.java, **/tests/test1.java
但是,对于 Ant,以上两个值都是正确的。
谁能告诉我如何才能完成这项工作?
您在错误的级别中使用逗号分隔。您将它放在 <include>
元素而不是 includes
属性中(请参阅 doc page)。
所以要使用你会做的逗号方法
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")
}
实际上,您可以使用逗号、space 或逗号 space(即使文档没有提及)。