2015-07-06 2 views
2

Я использую Groovy dsl в сценарии Jenkins, где передаю значение параметра include в Ant FileSet.AntBuilder (groovy) с разделенными запятыми файлами (FileSet "include")

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"] это одно выражение для выбора файла, например,

**/тесты/*. Java

Он выходит из строя (мне кажется, что Groovy не в состоянии понять, что значение как есть), чтобы найти файлы, если params["testSuite"] определяется как

**/тесты/test1.java **/тесты/test1.java

Однако в Ant, как указанные выше значения являются правильными.

Может кто-нибудь сказать мне, как я могу сделать эту работу?

+0

Вы пробовали просто запятую ',' или просто пробел '' вместо запятой '', как разделитель? –

+0

Я пробовал с обоими. Никто не работал. FileScanner находит 0 (нулевые) файлы. – naspras

+0

Выполняет ли '**/tests/*. Java, **/tests/*. Java' работу? Может быть, нет соответствующих файлов с 'test1.java' (который, я надеюсь, является примером, а не фактическим исходным именем источника Java) –

ответ

1

Вы используете запятую, расположенную на неправильном уровне. Вы помещаете его в элемент <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") 
} 

И на самом деле, вы можете использовать запятую, пробел или запятая пространство (даже если документ не упоминает о том, что).

+0

Отлично! Это работает отлично. Я понял, что мне пришлось использовать «включает», но не был уверен в синтаксисе. Благодаря! – naspras

Смежные вопросы