본문 바로가기
개발공부/JAVA Spring

gradle dependencies 의존성 관리 알아보기

by bzerome240 2023. 1. 29.

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

 

[Spring] Gradle 파일 implementation, api, runtimeOnly, compileOnly... 등에 대해

Gradle 파일 implementation, api, runtimeOnly, compileOnly ... 등에 대해 아무 생각없이 gradle을 사용해왔는데 우테코 미션에 대한 리뷰 중 다음과 같은 것이 달렸다. 그래서 공부해보았다! 먼저, Classpath에 대

bepoz-study-diary.tistory.com

 

728x90
반응형

댓글