[Spring] build.gradle 의존성 구성

Classpath란?

  • 클래스나 jar파일이 존재하는 위치이다.
  • Java 애플리케이션 실행 시 필요하다.
  • JVM이 classpath를 통해 파일 경로를 따라 클래스 파일을 찾아서 로드한다.

compileClasspath 와 runtimeClasspath

1. compileClasspath

  • *.java 코드를 컴파일해서 *.class 파일로 만들 수 있게 하는 JDK에서 필요로 하는 라이브러리의 경로이다.
  • 즉, 에러없이 컴파일 하기 위해 필요한 클래스와 jar의 위치를 나타낸다.

2. runtimeClasspath

  • 컴파일된 자바 코드를 실행시킬 때 필요한 라이브러리의 경로이다.
  • 즉, 애플리케이션이 정상적으로 실행되기 위해 필요한 클래스와 jar의 위치를 나타낸다.

의존성 구성

1. implementaion

  • 의존성이 컴파일 시점과 런타임 시점 모두 필요할 때 사용된다.

2. compileOnly

  • 컴파일 시에만 사용되고, 런타임 시에는 사용되지 않는다.

3. runtimeOnly

  • 런타임 시에만 사용되고, 컴파일 시에는 사용되지 않는다.

4. annotationProcessor

  • 컴파일 중에 사용되는 어노테이션 프로세서이다.
  • 컴파일 시에만 사용되고, 런타임 시에는 사용되지 않는다.

참고