Как определить карту в build.gradle - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть плагин, как показано ниже

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.

1 Ответ

0 голосов
/ 19 февраля 2020

Ваш конструктор по-прежнему называется AcdsInstanceGridDetails, а ваш класс называется InstanceGridDetails. Они должны иметь одинаковые имена.

Попробуйте заменить все вхождения AcdsInstanceGridDetails на InstanceGridDetails

...