90 lines
3.3 KiB
Groovy
Raw Normal View History

plugins {
id 'java'
id 'org.hidetake.swagger.generator'
}
apply from: '../../gradle/coverage/java-coverage.gradle'
dependencies {
implementation project(':metadata-auth:auth-api')
implementation project(':metadata-service:auth-impl')
implementation project(':metadata-service:factories')
implementation project(':metadata-service:openapi-servlet')
implementation project(':metadata-service:openapi-servlet:models')
implementation project(':metadata-models')
implementation externalDependency.servletApi
implementation(externalDependency.springBootStarterValidation) {
exclude group: 'org.apache.tomcat.embed', module: 'tomcat-embed-el'
}
implementation externalDependency.springBoot
implementation externalDependency.springCore
implementation(externalDependency.springDocUI) {
exclude group: 'org.springframework.boot'
}
implementation externalDependency.springWeb
implementation externalDependency.springWebMVC
implementation externalDependency.springBeans
implementation externalDependency.springContext
implementation externalDependency.reflections
implementation externalDependency.slf4jApi
compileOnly externalDependency.lombok
implementation externalDependency.antlr4Runtime
implementation externalDependency.antlr4
annotationProcessor externalDependency.lombok
testImplementation externalDependency.testng
testImplementation externalDependency.mockito
testImplementation externalDependency.springBootTest
swaggerCodegen externalDependency.swaggerCli
swaggerCodegen project(':metadata-service:openapi-entity-servlet:generators')
}
sourceSets {
main {
java {
srcDirs = ["$buildDir/openapi/generated/src/main/java", 'src/main/java']
}
}
}
task mergeApiComponents(dependsOn: ':metadata-models:generateJsonSchema') {
doLast {
mkdir("$buildDir/openapi")
File combined = file("$buildDir/openapi/open-api.yaml")
def components = file("${project(':metadata-models').projectDir}/src/generatedJsonSchema/combined/open-api-components.yaml").getText('UTF-8')
def api = file("$projectDir/src/main/resources/entity-v2.0.yml").getText('UTF-8')
def paths = file("${project(':metadata-models').projectDir}/src/generatedJsonSchema/combined/open-api-paths.yaml").getText('UTF-8')
combined.text = (components + paths + api).replaceAll("---\n", "\n")
}
outputs.file(file("$buildDir/openapi/open-api.yaml"))
}
// https://github.com/int128/gradle-swagger-generator-plugin#task-type-generateswaggercode
task openApiGenerate(type: GenerateSwaggerCode, dependsOn: [mergeApiComponents, ':metadata-service:openapi-entity-servlet:generators:jar']) {
inputFile = file("$buildDir/openapi/open-api.yaml")
outputDir = file("$buildDir/openapi/generated")
// custom generator class
language = 'io.datahubproject.CustomSpringCodegen'
components = ["apis"]
templateDir = file("$projectDir/src/main/resources/JavaSpring")
additionalProperties = [
'group-id' : "io.datahubproject",
'dateLibrary' : "java8",
'java11' : "true",
'modelPropertyNaming': "original",
'modelPackage' : "io.datahubproject.openapi.generated",
'apiPackage' : "io.datahubproject.openapi.v2.generated.controller",
'delegatePattern' : "false"
]
}
tasks.getByName("compileJava").dependsOn(openApiGenerate)