-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
122 lines (103 loc) · 3.46 KB
/
build.gradle.kts
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
import net.ltgt.gradle.errorprone.CheckSeverity
import net.ltgt.gradle.errorprone.errorprone
// Liquibase Plugin
val liquibaseCoreVersion: String by project
val picocliVersion: String by project
val snakeyamlVersion: String by project
val postgresqlVersion: String by project
// Guava
val guavaVersion: String by project
// JWT
val jjwtVersion: String by project
// Swagger
val springdocVersion: String by project
// Static Analysis
val errorproneVersion: String by project
val nullawayVersion: String by project
plugins {
java
id("org.springframework.boot") version "3.2.5"
id("io.spring.dependency-management") version "1.1.5"
id("org.liquibase.gradle") version "2.2.2"
id("com.diffplug.spotless") version "6.25.0"
id("com.github.spotbugs") version "6.0.14"
id("net.ltgt.errorprone") version "3.1.0"
}
group = "com.todo"
version = "1.0.0"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-web")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("org.postgresql:postgresql")
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
liquibaseRuntime("org.liquibase:liquibase-core:$liquibaseCoreVersion")
liquibaseRuntime("info.picocli:picocli:$picocliVersion")
liquibaseRuntime("org.yaml:snakeyaml:$snakeyamlVersion")
liquibaseRuntime("org.postgresql:postgresql:$postgresqlVersion")
implementation("com.google.guava:guava:$guavaVersion")
implementation("io.jsonwebtoken:jjwt-api:$jjwtVersion")
runtimeOnly("io.jsonwebtoken:jjwt-impl:$jjwtVersion")
runtimeOnly("io.jsonwebtoken:jjwt-jackson:$jjwtVersion")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:$springdocVersion")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
errorprone("com.google.errorprone:error_prone_core:$errorproneVersion")
errorprone("com.uber.nullaway:nullaway:$nullawayVersion")
}
liquibase {
activities {
register("main") {
val dbURL: String = System.getenv("DB_URL") ?: ""
val dbUsername: String = System.getenv("DB_USERNAME") ?: ""
val dbPassword: String = System.getenv("DB_PASSWORD") ?: ""
val dbName: String = System.getenv("DB_NAME") ?: ""
this.arguments = mapOf(
"changeLogFile" to "db/changelog/db.changelog-master.yaml",
"url" to "$dbURL/$dbName",
"username" to dbUsername,
"password" to dbPassword,
"driver" to "org.postgresql.Driver",
"logLevel" to "info",
"searchPath" to "src/main/resources"
)
}
}
runList = "main"
}
spotless {
java {
googleJavaFormat()
importOrder("java", "javax", "", "com.todo")
removeUnusedImports()
formatAnnotations()
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<JavaCompile>().configureEach {
options.errorprone {
disableWarningsInGeneratedCode.set(true)
check("NullAway", CheckSeverity.ERROR)
option("NullAway:AnnotatedPackages", "com.todo")
option("NullAway:ExcludedFieldAnnotations", "org.mockito")
}
}