Я пытаюсь создать приложение, которое ссылается на спецификацию openapi, которая уже опубликована в артефакте. Это означает, что я буду использовать foo.yaml в качестве зависимости, но я не могу понять, как на самом деле ссылаться на этот файл с помощью плагина генератора openapitools.
Учитывая, что спецификации openapi могут использоватьсядля генерации как серверного, так и клиентского кода вполне логично, что он публикуется отдельно и просто извлекается и на него ссылаются реализации.
com.company.bar-1.0.10 содержит foo.yaml на верхнем уровнеиз jar.
Я добавил зависимость на верхнем уровне файла build.gradle.kts, а также добавил ее как часть самой задачи плагина.
задача generateFooCode (тип: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
generatorName = "java"
apiPackage = 'com.ehi.gbo.openapiconnect.api.foo'
modelPackage = 'com.ehi.gbo.openapiconnect.model.foo'
invokerPackage = 'com.ehi.gbo.openapiconnect.common.invoker'
inputSpec = "foo.yaml".toString()
outputDir = "$buildDir/generated-sources/foo".toString()
configOptions = [
dateLibrary : "java8",
useTags : true,
interfaceOnly : true,
delegatePattern : false,
useBeanValidation : false,
performBeanValidation: false,
useOptional : false,
serviceImplementation: false,
serviceInterface : false,
java8 : false,
serializableModel : true,
skipDefaultInterface : true,
reactive : false,
]
configurations {
dependencies {
implementation 'com.company.bar:foo-api:1.0.10'
}
}
}
Результаты, которые я получаю: * Что пошло не так: выполнение не выполнено дляtask ': generateFooCode'.
Были проблемы со спецификацией. Опцию можно отключить с помощью validateSpec (Maven / Gradle) или --skip-validate-spec (CLI). |Количество ошибок: 1, Количество предупреждений: 0 Ошибки: - невозможно прочитать местоположение foo.yaml