如何定义Map 在build.gradle

问题描述 投票:0回答:1

我有如下插件

class AbstractConfigExtension {
    public static final String NAME = "abstract_extension"
    Project project

    // Configuration extension properties
    String service
    String substrate
    String region
    String group
    String pod
    Map<String,InstanceGridDetails> instanceGridDetails  = new HashMap<String,InstanceGridDetails>()
    // new HashMap<String,String>()
    List<String> tags = new ArrayList<>()
    List<String> instances = ["i01"]
    int numInstances = 1
    boolean generateServiceFiles = true
}

我有一个名为InstanceGridDetails.groovy的其他类。

class InstanceGridDetails {
    // Grid Properties
    String grid
    String dsName
    String ddName

    public AcdsInstanceGridDetails () { 

    }

    String getGrid() {
        return this.grid
    }

    void grid(String grid) {
        this.grid = grid
    }

    String dsName() {
        return this.dsName
    }

    void dsName(String dsName) {
        this.dsName = dsName
    }

    String ddName() {
        return this.ddName
    }

    void ddName(String ddName) {
        this.ddName = ddName
    }
}

这被称为使用build.gradle的插件,如下所示

apply plugin: 'java'
apply plugin: HoconConfigPlugin
apply plugin: GriddableCaacRpmPlugin

abstract_extension {
    service "relay"
    substrate "1p"
    region "xrd"
    instanceGridDetails = ["i01": InstanceGridDetails { gridName "grid1"
                                                            dsName "ds1"
                                                            ddName "dd1"} ]
    numInstances 1
    tags = ["medium_mem"]
}

当我如上所述进行操作时,出现如下问题

FAILURE:构建因异常而失败。

  • 其中:构建文件'config-packages / service-cfg-1p-xrd / build.gradle'行:13

  • 出了什么问题:评估项目':config-packages:service-cfg-1p-xrd'时出现问题。

  • 找不到参数InstanceGridDetails()的方法[build_b1plunv4uhm1dpn66jee47jiz $ _run_closure1 $ _closure2 @ 25cf3fbf]类型为AbstractConfigExtension的对象。

我有一个如下所示的插件类AbstractConfigExtension {public static final String NAME =“ abstract_extension”项目项目//配置扩展属性字符串服务...

gradle plugins build.gradle gradle-plugin
1个回答
0
投票

您的构造函数仍称为AcdsInstanceGridDetails,而您的类称为InstanceGridDetails。它们应该具有相同的名称。

© www.soinside.com 2019 - 2024. All rights reserved.