Настройте swagger в скрипте сборки gradle с помощью kotlin dsl

Я пытаюсь переключить свой простой проект с Groovy на Kotlin в сценариях сборки. Я использую этот плагин: https://github.com/gigaSproule/swagger-gradle-plugin В моем скрипте сборки есть такая конфигурация:

swagger{
  apiSource {
    springmvc = false
    locations = ['my.location']
    schemes = ['https']
    host = 'test.com:8080'
    info {
      title = 'My Service'
      version = 'v1'
    }
    swaggerDirectory = "$buildDir/swagger"
  }

Куда я должен обратиться в этой ситуации? Должен ли я сделать что-то вроде?

    task( "swagger" ) {
      ...
    }

Мне это не совсем знакомо. Спасибо.


person Rostislav V    schedule 21.12.2017    source источник
comment
У вас есть простой пример, который мы можем запустить и увидеть проблему, с которой вы столкнулись?   -  person tim_yates    schedule 21.12.2017
comment
У меня нет никаких проблем, мне просто интересно, как это настроить в kotlin   -  person Rostislav V    schedule 21.12.2017
comment
Вы должны либо настроить pluginManagment в settings.gradle, либо использовать configure<ClassOfTheSwaggerConfig> {}. Вы можете проверить образец hello-android в репозитории gradle/kotlin-dsl github...   -  person StefMa    schedule 21.12.2017


Ответы (1)


Если кто-то все еще ищет эту информацию, вот как это сделать с помощью Gradle Kotlin DSL:

import com.benjaminsproule.swagger.gradleplugin.model.*

plugins {
    id("com.benjaminsproule.swagger") version "1.0.0"
}

swagger {
    apiSource(closureOf<ApiSourceExtension> {
        springmvc = false
        schemes = mutableListOf("https")
        host = "test.com:8080"

        info(closureOf<InfoExtension> {
            title = "My Service"
            version = "v1"
            description = "My Service Description"
            termsOfService = "http://www.example.com/termsOfService"
            contact(closureOf<ContactExtension> {
                email = "[email protected]"
                name = "A Developer"
                url = "http://www.internet.com"
            })
            license(closureOf<LicenseExtension> {
                url = "http://www.apache.org/licenses/LICENSE-2.0.html"
                name = "Apache 2.0"
            })
        })

        locations = mutableListOf("com.foo.fighting")
        swaggerDirectory = "$buildDir/swagger"
    })
}

Я протестировал его с помощью Gradle v4.6.

person Lex Luthor    schedule 19.04.2018