sitelink1 | https://docs.gradle.org/current/userguid...ions_graph |
---|---|
sitelink2 | https://velog.io/@kanamycine/build.gradl...pendencies |
sitelink3 | https://effortguy.tistory.com/217 |
build.gradle에 dependencies에 의존하고 있는 라이브러리들이 명시되어 있다.
Dependency Configuration 종류 및 기능
complieOnly
컴파일할 때만 사용
compileOnly로 의존성을 추가하면 jar에 포함되지 않아 가벼워진다.
runtimeOnly
런타임에만 사용 (ex. db-connector, mysql, h2)
컴파일할 때는 필요없는 라이브러리 의존성 추가할 때 사용한다.
annotationProcessor
어노테이션 프로세서 사용하는 라이브러리인 경우 사용, 컴파일에만 적용 (ex. lombok)
옛날 버전에서는 compileOnly를 썼었는데 최신 버전에서는 사용이 불가능하다.
implementation
컴파일 + 런타임
컴파일에도 필요하고 런타임에도 필요할 때 사용
api
api로 추가한 라이브러리에서 의존하고 있는 라이브러리에 의존하고자 할 때 사용 (컴파일 + 런타임)
a가 b 라이브러리를 api로 추가하면 a는 b에서 사용 중인 라이브러리 c를 사용할 수 있다.
이 방법은 조심해야 하는데 b에서 사용하고 있는 라이브러리 c를 d로 바꾼다면? a가 사용하는 c가 사라졌기 때문에 문제가 발생할 수도 있다.
testCompileOnly
테스트 코드 컴파일할 때만 사용
testRuntimeOnly
테스트 런타임에 사용
testImplementation
테스트 컴파일 + 런타임에 사용