build.gradle 내용 중 의존성 관리 부분 알아보기
dependencies 에는 프로젝트에 필요한 라이브러리를 정의해놓는다.
ex)
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
runtimeOnly 'mysql:mysql-connector-java'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
}
implementation
앱 실행, 패키징, 테스팅 등 전 범위에서 라이브러리가 사용된다.
ex) spring-boot-starter-security, spring-boot-starter-thymeleaf, spring-data-rest-hal-explorer, spring-boot-starter-data-rest, spring-boot-starter-data-jpa, spring-boot-starter-web, spring-boot-starter-actuator
thymeleaf-extras-springsecurity5, handlebars-spring-boot-starter
querydsl-jpa, querydsl-core, querydsl-collections
testImplementation
테스트 소스를 컴파일하고 실행할 때 라이브러리가 사용된다.
ex) spring-boot-starter-test, spring-retry
spock-core, spock-spring, byte-buddy, okhttp, mockwebserver
compileOnly
컴파일 시점에만 사용된다.
빌드 결과물의 사이즈가 줄어든다.
ex) lombok
runtimeOnly
실행 시점에만 사용된다.
해당 클래스에서 코드 변경이 일어나도 컴파일을 다시 할 필요가 없게된다.
ex) h2, mysql, mariadb-java-client
developmentOnly
ex) spring-boot-devtools
annotationProcessor
annotation proccer 명시한다.
라이브러리 구성
[패키지명]:[라이브러리ID]:[버전]
참조
https://bepoz-study-diary.tistory.com/372
'개발공부 > JAVA Spring' 카테고리의 다른 글
[Spring Boot] HTTP Request 어노테이션 - GetMapping, PostMapping, PutMapping, DeleteMapping (0) | 2023.02.18 |
---|---|
제어 역전 IoC, 의존성 주입 DI, 관점 지향 프로그래밍 AOP (0) | 2023.02.11 |
JPA ddl-auto 옵션 종류 (0) | 2023.01.25 |
Spring 웹 계층 (0) | 2023.01.25 |
[Spring Boot] DB 관련 용어 정리 (0) | 2023.01.25 |
댓글