【问题标题】:How to define a Map<String,CustomObject> in build.gradle如何在 build.gradle 中定义 Map<String,CustomObject>
【发布时间】:2020-02-19 18:25:39
【问题描述】:

我有一个插件如下

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' 时出现问题。

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

【问题讨论】:

    标签: gradle plugins build.gradle gradle-plugin


    【解决方案1】:

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

    尝试用 InstanceGridDetails 替换所有出现的 AcdsInstanceGridDetails

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 2019-12-22
      • 2021-04-22
      • 2017-04-06
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多