-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
180 lines (163 loc) · 8.12 KB
/
Copy pathbuild.gradle
File metadata and controls
180 lines (163 loc) · 8.12 KB
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
plugins {
id 'org.springframework.boot' version '2.7.3'
id 'io.spring.dependency-management' version '1.0.13.RELEASE'
id 'java'
id "com.thinkimi.gradle.MybatisGenerator" version "2.4"
id "org.openapi.generator" version "6.2.0"
id "com.rameshkp.openapi-merger-gradle-plugin" version "1.0.4"
}
group = 'com.example'
sourceCompatibility = '17'
archivesBaseName = 'app'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
/* Utility */
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
// https://mvnrepository.com/artifact/org.apache.commons/commons-collections4
implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.0'
// https://mvnrepository.com/artifact/org.mapstruct/mapstruct-processor
implementation group: 'org.mapstruct', name: 'mapstruct', version: '1.5.2.Final'
// https://mvnrepository.com/artifact/org.mapstruct/mapstruct
implementation group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.5.2.Final'
annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.5.2.Final'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.13.4'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.7.3'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.13.4'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-parameter-names
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: '2.13.4'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jdk8
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: '2.13.4'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '2.7.4'
// https://mvnrepository.com/artifact/org.openapitools/openapi-generator-gradle-plugin
implementation group: 'org.openapitools', name: 'openapi-generator-gradle-plugin', version: '6.2.0'
// https://mvnrepository.com/artifact/com.rameshkp.openapi-merger-gradle-plugin/com.rameshkp.openapi-merger-gradle-plugin.gradle.plugin
implementation group: 'com.rameshkp.openapi-merger-gradle-plugin', name: 'com.rameshkp.openapi-merger-gradle-plugin.gradle.plugin', version: '1.0.4', ext: 'pom'
// https://mvnrepository.com/artifact/org.openapitools/jackson-databind-nullable
implementation group: 'org.openapitools', name: 'jackson-databind-nullable', version: '0.2.3'
/* Documentation */
// https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
// https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: '2.2.2'
// https://mvnrepository.com/artifact/io.swagger.parser.v3/swagger-parser
implementation group: 'io.swagger.parser.v3', name: 'swagger-parser', version: '2.1.1'
/* DB */
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.30'
// https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.0.6'
// https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.2.2'
// https://mvnrepository.com/artifact/org.mybatis.dynamic-sql/mybatis-dynamic-sql
implementation group: 'org.mybatis.dynamic-sql', name: 'mybatis-dynamic-sql', version: '1.4.0'
// https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core
implementation group: 'org.mybatis.generator', name: 'mybatis-generator-core', version: '1.4.1'
/* Redis */
implementation 'org.redisson:redisson:3.17.6'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '2.7.4'
/* JWT */
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-api
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-impl
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-jackson
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'
/* Security */
// https://mvnrepository.com/artifact/org.springframework.security/spring-security-core
implementation group: 'org.springframework.security', name: 'spring-security-core', version: '5.7.3'
}
// Mybatis Generator Configuration
mybatisGenerator {
verbose = true
configFile = "src/main/resources/mybatis/generatorConfiguration.xml"
dependencies {
mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.4.1'
mybatisGenerator 'mysql:mysql-connector-java:8.0.30'
mybatisGenerator 'org.mariadb.jdbc:mariadb-java-client:3.0.6'
}
}
// openapi.yml delete.
task deleteOpenApi(type: Delete) {
delete files("$rootDir/specs/paths/openapi.yml")
}
// Openapi Merge Configuration
openApiMerger {
inputDirectory.set(file("$rootDir/specs/paths/".toString()))
output {
directory.set(file("$rootDir/specs/paths".toString()))
fileName.set("openapi")
fileExtension.set("yml")
}
openApi {
openApiVersion.set("3.0.1")
info {
title.set("Open API MERGER")
description.set("All files merged by open api merger")
version.set("1.0.0")
}
}
}
// Openapi Generator Configuration
openApiGenerate {
generatorName = "spring"
inputSpec = "$rootDir/specs/paths/openapi.yml".toString()
outputDir = "$buildDir/generated".toString()
apiPackage = "org.openapi.example.api"
invokerPackage = "org.openapi.example.invoker"
modelPackage = "org.openapi.example.model"
generateModelTests = false
generateApiTests = false
generateModelDocumentation = false
generateApiDocumentation = false
configOptions = [
dataLibrary : "java8",
documentationProvider: "springFox",
interfaceOnly : "true"
]
}
sourceSets {
main {
java {
srcDir "${openApiGenerate.outputDir.get()}/src/main/java"
}
resources {
srcDir "${openApiGenerate.outputDir.get()}/src/main/resources"
}
}
}
// Integrating plugin tasks with compiling
tasks.openApiGenerate {
dependsOn tasks.deleteOpenApi
dependsOn tasks.mergeOpenApiFiles
tasks.mergeOpenApiFiles.mustRunAfter tasks.deleteOpenApi
}
compileJava {
dependsOn tasks.openApiGenerate
source "${buildDir}/generated/openapi/src/main/java"
}
tasks.named('test') {
useJUnitPlatform()
}
// Logback path throw support
configurations {
all*.exclude module: 'logback-classic'
all*.exclude module: 'spring-boot-starter-logging'
}