如何将属性集合传递给Gradle

时间:2014-11-11 16:34:44

标签: groovy gradle

我想使用命令行Gradle的属性注入来传递一个数组,这可能吗?

这样的事情:

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

并像往常一样访问它:

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

这可能吗?

2 个答案:

答案 0 :(得分:6)

您不能将数组作为属性的值传递。但是,您可以接受以逗号分隔的字符串作为值并在gradle文件中拆分。

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

gradle build -PmyProp=value1,value2,value3

运行

答案 1 :(得分:1)

-Pmyprop=value总是给出一个String值。您必须解析该String并将其转换为集合。通常,最好在构建脚本中对常见的参数集进行建模(例如,通过每组参数设置一个单独的任务)。