如何将属性集合传递给Gradle

Luc*_*cci 2 groovy gradle

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

像这样的东西:

gradle build -PmyProp=['value1','value2','value3']
Run Code Online (Sandbox Code Playgroud)

并像往常一样访问它:

if(project.hasProperty('myProp')) {
    for ( prop in myProp ) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Sun*_*pta 7

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

if (project.hasProperty('myProp')) {
    project.properties['myProp'].split(',').each { 
        println it
    }
}
Run Code Online (Sandbox Code Playgroud)

运行为 gradle build -PmyProp=value1,value2,value3

  • 这是我在类似情况下选择的解决方案,有一个细微的差别,使其更干净,或者更“groovier” - 我使用 Groovy 的 _tokenize_ 方法将参数拆分为一个集合。 (2认同)