-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
133 lines (116 loc) · 4.17 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
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.7'
id 'com.diffplug.spotless' version '6.11.0'
id "org.sonarqube" version "4.4.1.3373"
id 'jacoco'
}
apply plugin: 'org.sonarqube'
bootJar.enabled = false
repositories {
mavenCentral()
}
sonarqube {
properties {
property "sonar.projectKey", "JNU-Parking-Ticket-Project_Parking-Ticket-BE"
property "sonar.organization", "jnu-parking-ticket-project"
property "sonar.host.url", "https://sonarcloud.io"
property 'sonar.sources', 'src'
property 'sonar.language', 'java'
property 'sonar.sourceEncoding', 'UTF-8'
property 'sonar.java.enablePreview', 'true'
property 'sonar.java.binaries', "${project.projectDir}/build/classes"
property 'sonar.test.inclusions', '**/*Test.java'
property 'sonar.exclusions', '**/test/**, **/Q*.java, **/*Doc*.java, **/resources/** ,**/*Application*.java , **/*Config*.java,' +
'**/*Dto*.java, **/*Request*.java, **/*Response*.java ,**/*Exception*.java ,**/*ErrorCode*.java'
property 'sonar.java.coveragePlugin', 'jacoco'
}
}
subprojects {
group = 'com.jnu'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
apply plugin: 'java'
apply plugin: 'java-library' // build.gradle에서 api() 를 사용하려면 java-library 사용
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
// spring boot dependency를 사용하여 사용중인 부트 버전에서 자동으로 의존성을 가져온다.
apply plugin: 'jacoco'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
jacoco {
toolVersion = '0.8.8'
// reportsDir = ${project.reporting.baseDir}/jacoco
}
jacocoTestReport {
dependsOn compileJava
reports {
xml.required = true
csv.required = false
html.required = true
// xml 위치 조정
xml.destination file("${project.projectDir}/build/reports/jacoco.xml")
}
def Qdomains = []
for (qPattern in '**/QA'..'**/QZ') { // qPattern = '**/QA', '**/QB', ... '*.QZ'
Qdomains.add(qPattern + '*')
}
afterEvaluate {
classDirectories.setFrom(
files(classDirectories.files.collect {
fileTree(dir: it, excludes: [
"**/*Application*",
"**/*Config*",
"**/*Dto*",
"**/*Request*",
"**/*Response*",
"**/*Interceptor*",
"**/*Filter*",
"**/*Exception*"
] + Qdomains)
})
)
}
}
test {
useJUnitPlatform()
finalizedBy jacocoTestReport
}
apply plugin: 'org.sonarqube'
sonarqube {
properties {
property 'sonar.java.binaries', "${project.projectDir}/build/classes"
property 'sonar.coverage.jacoco.xmlReportPaths', "${layout.buildDirectory}/reports/jacoco.xml"
}
}
repositories {
mavenCentral()
}
// 관리하는 모듈에 공통 dependencies
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
implementation 'io.vavr:vavr:0.10.3'
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
}
spotless {
java {
target("**/*.java")
googleJavaFormat().aosp()
removeUnusedImports()
indentWithTabs(4)
indentWithSpaces(4)
importOrder()
// trimTrailingWhitespace()
endWithNewline()
}
}