Я хотел бы импортировать файлы определения API, созданные с помощью плагина swagger gradle.У меня есть приложение весенней загрузки MVC.Кажется, я не могу правильно настроить параметры разрешения для создания openAPI.json.Задача разрешения gradle создает пустой файл только с тегом «openapi»: «3.0.1» и значением.Задача разрешения не заключается в получении аннотаций swagger и mvc api.Можете ли вы указать мне правильное направление, чтобы найти правильные параметры конфигурации для задачи определения червяка?
Приложение отображает документацию Spring-UI без проблем, когда приложение запущено, и я просматриваю конечную точку swagger-ui.Проблема заключается в том, что во время сборки gradle существует отдельная задача gradle для создания файла openAPI.json, который я хотел бы импортировать в SwaggerHub как часть каталога API приложения.
Мне не удалось найти какую-либо документациюгде-нибудь о том, как настроить задачу разрешения подключаемого модуля swagger gradle для получения аннотаций Spring MVC API.Я могу заставить его работать нормально в другом приложении, которое использует аннотации jax-rs, так что я уверен, что это проблема конфигурации задачи решения.
Копия моего файла gradle.build:
buildscript {
ext {
springBootVersion = '1.4.1.RELEASE'
}
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE")
// SwaggerHub Plugin Dependency
classpath("gradle.plugin.io.swagger:swaggerhub:1.0.1")
// Swagger Gradle Plugin Dependency
classpath("io.swagger.core.v3:swagger-gradle-plugin:2.0.5")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'jacoco'
// Required to upload swagger api doc to swaggerhub
apply plugin: 'io.swagger.swaggerhub'
// Required to generate swagger api doc file to upload to swaggerhub
apply plugin: 'io.swagger.core.v3.swagger-gradle-plugin'
jar {
baseName = 'service-framework'
version = '0.0.1-SNAPSHOT'
}
javadoc {
source = sourceSets.main.allJava
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-aop')
compile('org.springframework.boot:spring-boot-starter-jersey')
compile('org.springframework.boot:spring-boot-starter-web')
// Swagger Dependencies to generate the api documentation
compile('io.swagger:swagger-annotations:1.5.20')
compile('io.springfox:springfox-swagger2:2.8.0')
compile('io.springfox:springfox-swagger-ui:2.8.0')
runtime('com.h2database:h2')
runtime('org.postgresql:postgresql')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3'
testCompile group: 'junit', name: 'junit-dep', version: '4.10'
testCompile group: 'org.hamcrest', name: 'hamcrest-library', version: '1.3'
}
// Command to the swagger gradle plugin to generate the api file for upload
// to swaggerhub
//
//
// Create the directory for output of the api document
File path = new File("${buildDir}/doc")
//
// The Swagger Core Task to create the json output file required to upload
// to SwaggerHub
//
resolve {
outputFileName = 'openAPI'
outputFormat = 'JSON'
prettyPrint = 'TRUE'
classpath = sourceSets.main.runtimeClasspath
resourcePackages = ['test.serviceframework']
outputPath = path.getAbsolutePath();
}
Результирующий вывод в файле openAPI.json:
{
"openapi" : "3.0.1"
}