forked from datahub-project/datahub
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.gradle
76 lines (63 loc) · 2.43 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import io.datahubproject.GenerateJsonSchemaTask
plugins {
id 'pegasus'
id 'java-library'
id 'org.hidetake.swagger.generator'
}
dependencies {
api spec.product.pegasus.data
constraints {
implementation('org.apache.commons:commons-text:1.10.0') {
because 'Vulnerability Issue'
}
}
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
api externalDependency.swaggerAnnotations
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)
task cleanExtraDirs {
delete "$projectDir/src/generatedJsonSchema"
}
clean.finalizedBy(cleanExtraDirs)