java导出架包api_通过OpenAPI生成Java API jar包,并上传到私有仓库

本文介绍了如何通过OpenAPI 3.0.0定义的接口,利用Gradle和第三方插件生成SpringBoot Reactive的Java接口代码,并将其打包成Jar包,最后上传到私有仓库。涉及的工具有JDK11、SpringBoot 2.1.7.RELEASE,以及配置包括Swagger源文件、代码生成配置、Maven Publish插件和私有仓库认证。
摘要由CSDN通过智能技术生成

目的

通过OpenAPI格式定义的接口信息,生成SpringBoot Reactive接口Jar包,并上传到私有仓库

环境交待

开发工作IDEA 构建工具Gradle 接口定义OpenAPI 3.0.0 Java版本 JDK11 SpringBoot版本 2.1.7.RELEASE

实施

根据OpenAPI接口生成SpringBoot Reactive接口Java类

这里使用Gradle中的第三方插件来将OpenAPI接口生成Java接口

plugins {

// Gradle第三方插件,可通过swagger接口文档生成代码

id "org.hidetake.swagger.generator" version "2.18.1"

}

同时引入依赖openapi-generator-cli

dependencies {

// 以下swaggerCodegen,三选一

// swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.2' // Swagger Codegen V2

// swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.5' // or Swagger Codegen V3

swaggerCodegen 'org.openapitools:openapi-generator-cli:3.3.4' // or OpenAPI Generator

}

配置OpenAPI yaml文件位置

// 代码生成,api定义yaml配置

swaggerSources {

buddie {

// 指定api yaml文件

inputFile = file("$projectDir/src/main/resources/swagger/openApi.yaml")

}

}

指定swagger生成代码的配置文件

// 代码生成,api定义yaml配置

swaggerSources {

buddie {

// 指定api yaml文件

inputFile = file("$projectDir/src/main/resources/swagger/openApi.yaml")

code {

// 指定生成代码的类型

language = 'spring'

// 指定生成代码时的个性化配置文件

configFile = file("$projectDir/src/main/resources/swagger/config.json")

}

}

}

在config.json文件中指定了代码生成的包名,所使用的库,是否支持Reactive,各种路径,及指定Java类型的转换等

{

"library": "spring-boot",

"dateLibrary": "java8",

"reactive": true,

"hideGenerationTimestamp": true,

"modelPackage": "cn.buddie.demo.api.model",

"apiPackage": "cn.buddie.demo.api.controller",

"invokerPackage": "cn.buddie.demo.api",

"java8": true,

"configPackage": "cn.buddie.demo.api.configuration",

"useBeanValidation": true,

"interfaceOnly": true,

"typeMappings": {

"OffsetDateTime": "Instant"

},

"importMappings": {

"java.time.OffsetDateTime": "java.time.Instant"

}

}

将生成的接口代码类,打包、上传

这里使用Gradle官方插件maven-publish,同时引入java插件

plugins {

id 'java'

// Gradle官方插件,用来发布jar包

id "maven-publish"

}

同时引入SpringBoot,Springfox-Swagger包等

dependencies {

// 引入spring-boot-starter-webflux:2.1.x版本,以支持reactive,打包时需要

implementation('org.springframework.boot:spring-boot-starter-webflux:2.1.7.RELEASE')

// 引入springfox-swagger2,以支持swagger生成的接口,打包时需要

implementation("io.springfox:springfox-swagger2:2.9.2")

}

配置发布jar包到指定私有仓库

// 发布jar包

publishing {

publications {

maven(MavenPublication) {

//指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version

//artifactId = rootProject.name

//如果是war包填写components.web,如果是jar包填写components.java

from components.java

}

}

// 不配置repositories,会发布到本地maven仓库

repositories {

maven {

//指定要上传的maven私服仓库

url = "http://localhost:8081/repository/maven-releases/"

//认证用户和密码

credentials {

username 'admin'

password 'buddie'

}

}

}

}

完成示例代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值