-
Notifications
You must be signed in to change notification settings - Fork 3.1k
/
Copy pathbuild.gradle
80 lines (66 loc) · 2.55 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
77
78
79
80
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 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)