我试图建立一个应用程序,引用一个openapi规范,这是已经发表在ArtFactory。这意味着我将把foo.yaml作为一个依赖项,但我似乎不知道如何通过openapitools生成器插件实际引用该文件。
鉴于openapi规范可用于生成服务器代码和客户机代码,因此将其单独发布并简单地拉入实现并由实现引用是非常有意义的。
通用域名格式。公司巴-1.0。10含有foo。yaml位于罐子的顶部。
我已经在构建的顶层添加了依赖项。格拉德尔。kts文件,我还将其添加为插件任务本身的一部分。
org.openapitools.generator.gradle.plugin.tasks.生成任务
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'
}
}
}
我得到的结果:*出了什么问题:任务“:GenerateFocode”的执行失败。
规范有问题。可以通过validateSpec(Maven/Gradle)或--skip-validate-spec(CLI)禁用该选项。|错误计数: 1,警告计数: 0错误:-无法读取位置foo.yaml
经过大量的谷歌搜索,我发现了一个非常优雅的解决方案。
configurations {
api
}
dependencies {
api 'somegroup:someArtifact:someVersion'
}
task extractApi(type: Sync) {
dependsOn configurations.api
from { // use of closure defers evaluation until execution time
configurations.api.collect { zipTree(it) }
}
into "$buildDir/api/"
}
然后我就可以将inputSpec引用为$buildDir/api/spec.yaml
我正在使用OpenAPI生成器gradle插件和“jaxrs resteasy”生成器,我想知道是否有办法更改输出文件的名称。现在它正在生产ApiApi。java,ApiService。java,ApiException。java等。 有没有办法配置它,这样输出将是MyNameApi.java和MyNameApiService.java? 示例YAML:
我正在使用openapi生成器Gradle插件从openapi模式生成模型文件。在构建中使用这些设置。gradle脚本一切似乎都正常: } 结果类在正确的包中生成: 问题就在这里——我不需要它们在我的源代码中,我只需要它们在编译阶段。我希望它们在构建目录中生成,以将它们与其他逻辑分开。但是,当我将outport-dir更改为"$build dDir/生成". toString()时,会发生这种情况
这些插件提供的各种运行时的技术的集成. Table 22.3. Integration plugins Plugin Id 自动应用 协同工作 描述 application java, distribution - 增加了对运行绑定Java项目作为命令行应用的任务. ear - java 增加了对构建J2EE应用程序的支持. jetty war - 在构建中嵌入Jetty web容器可以部署web
我试图从我们需要实现的一个招摇过市的文件中生成接口。它是从外部来源提供的。我通常先使用契约,但在java/kotlin中很长一段时间没有这样做。 我已经建立了一个项目,希望尽可能多地控制我的代码。我尝试使用
不幸的是,SpringFox还不支持OpenAPI3,而且,当我只想将最初的yaml公开为JSON时,使用基于反射的生成器似乎毫无意义。
对于来说,肯定有某种方法可以产生这个输出,不是吗?我发现有一些将映射到,所以似乎有一种方法可以让它产生类型,但我没有找到