This repository has been archived by the owner on Aug 13, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
121 lines (108 loc) · 4.62 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
plugins {
id 'org.springframework.boot' version '2.5.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
/* JaCoCo(Java Code Coverage 라이브러리) 플러그인과의 통합을 통해 자바 코드에 대한 코드 커버리지 측정을 제공 */
id 'jacoco'
}
group = 'com.flab'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
jacoco {
toolVersion = "0.8.7"
reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir')
}
ext {
set('springCloudVersion', "2020.0.4")
}
/*
- dependencies : 라이브러리 같은 의존성 추가 시 작성하는 곳
- implementation : 개발할 때 내가 필요한 라이브러리를 적는 부분. 해당 부분에 적힌 라이브러리를 가져온다.
- Implmentation : JAVA 에서 테스트 코드를 작성할 때에 필요한 라이브러리를 적는 곳
- runtimeOnly : 런타임 시 구동할 것 작성
*/
dependencies {
/* spring-boot-starter-web : Spring MVC 를 사용한 restful 서비스를 개발하는데 사용합니다. */
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-aop'
/* spring-boot-starter-test : JUnit Jupiter, Hamcrest 및 Mockito 를 포함한 라이브러리로 Spring Boot 애플리케이션을 테스트하기 위한 스타터 */
implementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-validation'
/* spring-cloud-starter-circuitbreaker-resilience4j : resilience4j 라이브러리를 사용하기 위한 스타터 */
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
/* spring-security-crypto : 대칭 암호화, 키 생성, 비밀번호 인코딩을 지원합니다. 스프링 시큐리티 코드에 대한 의존성이 없습니다. */
implementation 'org.springframework.security:spring-security-crypto'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java'
/* 롬복 설정 : 어노테이션 기반으로 코드를 자동화해주는 라이브러리로
* @setter @getter 뿐만 아니라,
* @AllArgsConstructor 는 사용하여 모든 변수를 사용하는 생성자를
* @NoArgsConstructor 는 기본 생성자를 만들어줍니다. 그 외에도 많은 기능 제공
* */
annotationProcessor 'org.projectlombok:lombok'
/* Junit, Hamcrest, Mockito 포함하는 스프링 어플리케이션을 테스트 가능하도록 합니다. */
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation("org.springframework.cloud:spring-cloud-starter-contract-stub-runner")
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
test {
useJUnitPlatform()
/**
* JaCoCo 에이전트와 함께 실행하도록 구성된 작업은 작업 실행이 시작될 때 실행 데이터의 대상 파일을 삭제합니다.
* 이렇게 하면 실행 데이터에 오래된 적용 데이터가 존재하지 않습니다.
* */
finalizedBy jacocoTestReport
}
jacocoTestReport {
dependsOn test
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: [
"com/flab/doorrush/domain/user/dto/UserDto/*",
"**/Q*.class"
])
}))
}
reports {
xml.required = false
csv.required = false
html.required = true
}
finalizedBy jacocoTestCoverageVerification
}
/**
* violationRules : 이 작업에 대해 설정된 위반 규칙입니다 .
* rule : 선언된 규칙을 위반하면 check 작업을 실행할 때 빌드가 자동으로 실패합니다 .
* */
jacocoTestCoverageVerification {
violationRules {
rule {
enabled = true;
element = 'CLASS'
excludes = ['com.flab.doorrush.domain.**.dto.*',
'com.flab.doorrush.domain.**.domain.*',
'com.flab.doorrush.domain.**.exception.*',
'com.flab.doorrush.global.Response.*',
'com.flab.doorrush.global.exception.*'
]
limit {
counter = 'CLASS'
value = 'COVEREDRATIO'
minimum = 0.7
}
}
}
}