gpt4 book ai didi

java - Gradle,在 build.gradle 脚本中创建对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:43 25 4
gpt4 key购买 nike

在我的 gradle 插件中,我正在使用其他 build.gradle 脚本,它看起来像:

build.gradle:

sciptInstance {
name {
arrayWithObjects = [
{
var1 = "val1"
var2 = "val2"
{
]
}
}

在 gradle 插件中,我声明了容器来保存 ScriptClass 类的实例。此类具有字段 arrayWithObjectsarrayWithObjects 元素的类声明如下所示:

MyClass {
def var1
deg var2
}

在我的 SciptClass 中:

ScriptClass {
// other fields
MyClass[] arrayWithObjects

// constructor and so on..
}

在尝试构建脚本时,我收到一个转换异常,提示我无法将闭包转换为对象。我试图在 build.gradle 中用其他括号等声明 arrayWithObjects,但没有任何效果。我也不知道去哪里找。也许你们中的一些人以前遇到过这个问题?提前致谢。

编辑:要重现此内容:

插件:

apply plugin: MyPlugin

apply from: 'example.gradle'

class MyPlugin implements Plugin<Project> {
void apply(Project project) {
def examples = project.container(ScriptClass)
project.extensions.examples = examples
}
}

class ScriptClass {
String name
MyClass[] arrayWithObjects

ScriptClass(String name) {
this.name = name
}
}

class MyClass {
def var1
def var2
}

示例.gradle:

examples {
example {
arrayWithObjects = [
{
var1 = "val1"
var2 = "val2"
}
]
}
}

在主 build.gradle 中应用此插件并调用任何任务。

最佳答案

Here你可以找到一个解决问题的演示。基本上你需要使用 Map 而不是 Closure:

examples {
example {
arrayWithObjects = [
[var1: 'varvar1', var2: 'varvar2']
]
}
}

关于java - Gradle,在 build.gradle 脚本中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42996265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com