Попытка включить swagger-codegen с градл котлиндсл

Оператор == всегда предназначен для сравнения ссылок на объекты, тогда как метод сравнения строк .equals () переопределяется для сравнения содержимого:

String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2); // It prints false (reference comparison)
System.out.println(s1.equals(s2)); // It prints true (content comparison)
0
задан Clemzd 17 January 2019 в 16:49
поделиться

1 ответ

import org.hidetake.gradle.swagger.generator.GenerateSwaggerCode

// plugins, repositories are same, but note import above ^^^

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation ("io.swagger:swagger-annotations:1.5.21")
    "swaggerCodegen"("io.swagger:swagger-codegen-cli:2.3.1") // 1

    // Use JUnit test framework
    testImplementation ("junit:junit:4.12")
}

swaggerSources {
    create("petstore").apply { // 2
        setInputFile(file("petstore.yaml")) // 3
        code(closureOf<GenerateSwaggerCode> { // 4
            language = "spring"
        })
    }
}

1 - динамически разрешенная конфигурация в Kotlin выглядит следующим образом (динамически из Groovy, поэтому использовать ее во время компиляции проблематично, оператор вызова расширения для String - наш спаситель);

2 - swaggerSources возвращает вас NamedDomainObjectContainer<SwaggerSource>, поэтому для добавления нового контейнера мы вызываем create с его именем в качестве параметра;

3 - Kotlin не так гибок, как Groovy, поэтому вызывает setter вместо поля установки; [ 117]

4 - Закрытие Groovy далеко от функционального интерфейса, поэтому мы указываем универсальный тип, так как в источниках плагина Closure нет параметризации.

0
ответ дан kr3v 17 January 2019 в 16:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: