arrays - 在 gradle.properties 文件中声明数组/ HashMap

标签 arrays groovy properties gradle

我正在尝试在 gradle.properties 文件中定义一个数组。例如,当我在某个 gradle 脚本中执行下一步时:

project.ext.mygroup = [
  myelement1: "myvalue1",
  myelement2: "myvalue2"
]
project.mygroup.put("myelement3", "myvalue3"); // As internally it works like a hashmap

然后我列出属性,我得到:

mygroup: {myelement1=myvalue1, myelement2=myvalue2, myelement3=myvalue3}

因此,如果我尝试在 gradle.properties 文件中设置具有相同形式的属性:

mytestgroup={myelement1=myvalue1, myelement2=myvalue2}

然后在 gradle 脚本中我尝试访问此属性:

project.mytestgroup.put("myelement3", "myvalue3");

我收到下一个错误:

No signature of method: java.lang.String.put() is applicable for argument types: (java.lang.String, java.lang.String) values: [myelement3, myvalue3]

这是因为属性“mytestgroup”被视为字符串而不是数组。

有人知道在 gradle.properties 文件中声明数组的正确语法是什么吗?

提前致谢

最佳答案

符号{myelement1=myvalue1, myelement2=myvalue2, myelement3=myvalue3}只是对象的字符串表示形式,作为调用Map.toString()的结果。这在语法上是不正确的 Groovy。

您的第一个示例是定义Map的正确方法。

def myMap = [ key : 'value' ]

定义数组类似。

def myArray = [ 'val1', 'val2', 'val3' ]

关于arrays - 在 gradle.properties 文件中声明数组/ HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538489/

相关文章:

javascript - AngularJS 过滤器数组

java - 使用方法迭代多个预定义的 ArrayList

java - 我在为包含整数 1-25 的数组创建循环并每行打印 5 个数字时遇到问题

spring - Grails getSomething(int i) 方法无法编译

groovy - Groovy 语言有多稳定?

c++ - 使用 boost 属性树创建多节 xml

python - 关于 python 中的属性类

c++ - 无法分配大小为 0 的常量数组

java - Groovy 中的基本运算符重载

javascript - 如何在 JavaScript 中获取所有类属性