Groovy 如何将属性集合传递给Gradle

Groovy 如何将属性集合传递给Gradle,groovy,gradle,Groovy,Gradle,我想使用命令行Gradle的属性注入来传递一个数组,这可能吗 大概是这样的: gradle build -PmyProp=['value1','value2','value3'] 并像往常一样访问它: if(project.hasProperty('myProp')) { for ( prop in myProp ) { ... } } 这可能吗?-Pmyprop=value始终提供字符串值。您必须解析该字符串并将其转换为一个集合。通常,最好在构建脚本中对公共

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

大概是这样的:

gradle build -PmyProp=['value1','value2','value3']
并像往常一样访问它:

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

这可能吗?

-Pmyprop=value
始终提供字符串值。您必须解析该字符串并将其转换为一个集合。通常,最好在构建脚本中对公共参数集进行建模(例如,通过为每个参数集设置单独的任务)。

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

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

gradle build-PmyProp=value1,value2,value3运行这是我在类似情况下选择的解决方案,有一个细微的区别,使它更干净,或者更确切地说是“groovier”——我使用Groovy的标记化方法将参数拆分为一个集合。