2014-11-11 3 views
0

Я хотел бы использовать свойства впрыска командной строки Gradle, чтобы передать массив, возможно ли это?Как передать коллекцию свойств в Gradle

Что-то вроде этого:

gradle build -PmyProp=['value1','value2','value3'] 

И доступ к нему, как обычно:

if(project.hasProperty('myProp')) { 
    for (prop in myProp) { 
     ... 
    } 
} 

Возможно ли это?

ответ

3

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

if (project.hasProperty('myProp')) { 
    project.properties['myProp'].split(',').each { 
     println it 
    } 
} 

Запуск от имени gradle build -PmyProp=value1,value2,value3

+1

Это решение, которое я выбрал в подобной ситуации, с незначительной разницей, что делает его чище, или, вернее, «groovier» - я использовал метод _tokenize_ Groovy, чтобы разделить параметры в Коллекция. – Sean

1

-Pmyprop=value всегда дает значение строки. Вам придется проанализировать эту строку и превратить ее в коллекцию. Как правило, лучше моделировать общие наборы аргументов в скрипте сборки (например, имея отдельную задачу для набора аргументов).

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