-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathbuild.gradle
159 lines (136 loc) · 4.24 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.0'
id 'io.spring.dependency-management' version '1.1.4'
id 'com.star-zero.gradle.githook' version '1.2.1'
id 'ru.netris.commitlint' version '1.4.3'
id 'org.asciidoctor.jvm.pdf' version '4.0.2'
id("org.openapi.generator") version "6.6.0"
id("org.graalvm.buildtools.native") version "0.10.2"
}
group = 'com.ssegning.lynx'
version = '0.1.1'
java {
sourceCompatibility = '21'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
ext {
set('sentryVersion', "7.3.0")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
implementation 'io.sentry:sentry-spring-boot-starter-jakarta'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
implementation 'org.mapstruct:mapstruct:1.5.5.Final'
runtimeOnly 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-testcontainers'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.testcontainers:mongodb'
}
dependencyManagement {
imports {
mavenBom "io.sentry:sentry-bom:${sentryVersion}"
}
}
test {
useJUnitPlatform()
if (!project.hasProperty('spring.profiles.active') || project.property('spring.profiles.active') == 'local') {
exclude 'com/ssegning/lynx/mongo/**/*'
}
}
asciidoctorPdf {
sourceDir file('./docs')
sources {
include '**/*.adoc'
}
outputDir file('./build/pdf')
}
githook {
failOnMissingHooksDir = false
hooks {
"commit-msg" {
task = "commitlint -Dmsgfile=\$1"
}
"pre-commit" {
task = "build"
}
}
}
commitlint {
enforceRefs = false
}
openApiGenerate {
generatorName = 'spring'
inputSpec = "$rootDir/frontend/openapi.yaml"
outputDir = "${layout.buildDirectory.get()}/generated/openapi"
apiPackage = 'com.ssegning.lynx.lynxbackend.api'
modelPackage = 'com.ssegning.lynx.lynxbackend.model'
invokerPackage = 'com.ssegning.lynx.lynxbackend.handler'
configOptions = [
useTags : 'true',
library : 'spring-boot',
serializableModel : 'true',
dateLibrary : 'java8',
useBeanValidation : 'true',
performBeanValidation: 'true',
interfaceOnly : 'true',
useOptional : 'false',
useSpringBoot3 : 'true',
useResponseEntity : 'false',
openApiNullable : 'false',
useSwaggerUI : 'false'
]
}
sourceSets {
main {
java {
srcDir("$buildDir/generated/openapi/src/main/java")
}
}
}
compileJava {
dependsOn("openApiGenerate")
}
build {
dependsOn("openApiGenerate")
}
bootJar {
dependsOn("openApiGenerate")
}
compileAotJava {
dependsOn("openApiGenerate")
}
processAotResources {
dependsOn("openApiGenerate")
}
compileAotTestJava {
dependsOn("openApiGenerate")
}
processAotTestResources {
dependsOn("openApiGenerate")
}
processTestResources {
if (!project.hasProperty('spring.profiles.active') || project.property('spring.profiles.active') == 'local') {
exclude 'com/ssegning/lynx/mongo/**/*'
}
}