mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-30 18:26:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| import io.datahubproject.GenerateJsonSchemaTask
 | |
| 
 | |
| plugins {
 | |
|   id 'pegasus'
 | |
|   id 'java-library'
 | |
|   id 'org.hidetake.swagger.generator'
 | |
| }
 | |
| 
 | |
| apply from: '../gradle/coverage/java-coverage.gradle'
 | |
| 
 | |
| dependencies {
 | |
|   constraints {
 | |
|     implementation('org.apache.commons:commons-text:1.10.0') {
 | |
|       because 'Vulnerability Issue'
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   api(spec.product.pegasus.data) {
 | |
|     exclude group: 'javax.servlet', module: 'javax.servlet-api'
 | |
|   }
 | |
|   api project(':li-utils')
 | |
|   api project(path: ':li-utils', configuration: "dataTemplate")
 | |
|   dataModel project(':li-utils')
 | |
| 
 | |
|   // Newer Spring libraries require JDK17 classes, allow for JDK11
 | |
|   compileOnly externalDependency.springBootAutoconfigureJdk11
 | |
|   compileOnly externalDependency.annotationApi
 | |
|   compileOnly externalDependency.javaxValidation
 | |
| 
 | |
|   compileOnly externalDependency.lombok
 | |
|   annotationProcessor externalDependency.lombok
 | |
|   compileOnly externalDependency.swaggerAnnotations
 | |
|   compileOnly platform(externalDependency.jacksonBom)
 | |
|   compileOnly externalDependency.jacksonCore
 | |
|   compileOnly externalDependency.jacksonDataBind
 | |
| 
 | |
|   swaggerCodegen externalDependency.swaggerCli
 | |
|   testImplementation externalDependency.guava
 | |
|   testImplementation externalDependency.testng
 | |
| }
 | |
| 
 | |
| sourceSets {
 | |
|   main {
 | |
|     java {
 | |
|       srcDirs = ["$buildDir/openapi/generated/src/main/java"]
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| mainAvroSchemaJar.dependsOn generateAvroSchema
 | |
| 
 | |
| pegasus.main.generationModes = [PegasusGenerationMode.PEGASUS, PegasusGenerationMode.AVRO]
 | |
| 
 | |
| 
 | |
| task generateJsonSchema(type: GenerateJsonSchemaTask, dependsOn: 'generateAvroSchema') {
 | |
|   it.setInputDirectory("$projectDir/src/mainGeneratedAvroSchema")
 | |
|   it.setOutputDirectory("$projectDir/src/generatedJsonSchema")
 | |
|   it.setEntityRegistryYaml("${project(':metadata-models').projectDir}/src/main/resources/entity-registry.yml")
 | |
| }
 | |
| 
 | |
| // https://github.com/int128/gradle-swagger-generator-plugin#task-type-generateswaggercode
 | |
| task openApiGenerate(type: GenerateSwaggerCode, dependsOn: 'generateJsonSchema') {
 | |
|   inputFile = file("$projectDir/src/generatedJsonSchema/combined/open-api.yaml")
 | |
|   outputDir = file("$buildDir/openapi/generated")
 | |
|   language = "spring"
 | |
|   components = ["models"]
 | |
|   templateDir = file("$projectDir/src/main/resources/JavaSpring")
 | |
|   additionalProperties = [
 | |
|           'group-id'           : "io.datahubproject",
 | |
|           'dateLibrary'        : "java8",
 | |
|           'java11'             : "true",
 | |
|           'modelPropertyNaming': "original",
 | |
|           'modelPackage'       : "io.datahubproject.openapi.generated"
 | |
|   ]
 | |
| }
 | |
| tasks.getByName("compileJava").dependsOn(openApiGenerate)
 | |
| 
 | |
| clean {
 | |
|   delete "$projectDir/src/generatedJsonSchema"
 | |
| }
 | 
