首页 > 解决方案 > Gradle 无法在任务内创建 Groovy Map 对象

问题描述

我正在尝试使用以下语法在任务内部创建一个 Map 对象:

task newtask{
  newMap = [sname:'a', name:'', buildnr:'', path:'']
}

我得到的只是“无法为 org.gradle.api.DefaultTask 类型的任务 ':newTask' 设置未知属性 'newMap'。” 错误。

如果我尝试在任务之外创建 newMap,它的创建不会出错。有人可以解释使用 Gradle/Groovy 语法使用 Map 对象和 Map 对象的 ArrayList 的正确方法吗?

谢谢。

标签: dictionaryobjectgradlegroovy

解决方案


您尝试做的是使用局部变量,但您编写的是尝试分配newMap,就好像它在当前上下文中是已知的一样。

您应该将您的声明更改为:

def newMap = [sname:'a', name:'', buildnr:'', path:'']

然后Map根据您认为合适的方式使用它来配置任务。


推荐阅读