gradle 3.0의 Dependency Configurations
- 참고로 gradle 3.0 이전 버전과의 차이는 다음과 같습니다
- compile → implementation / api
- testCompile → testImplementation
- debugCompile → debugImplementation
- provided → compileOnly
compileOnly
: compile 시점에만 필요한 의존성을 정의하는 데 사용. 사용하려는 라이브러리가 컴파일 타임에만 필요하고, 런타임 시점에는 필요하지 않을 때 사용합니다. compileClassPath에만 추가되어 결과적으로 build 결과물의 크기를 줄일 수 있습니다.(JAR파일에 포함되지 않기 때문). (ex)LombokruntimeOnly
: 라이브러리가 runtimeClassPath에만 추가됩니다. 컴파일 시점에는 필요없는데 런타임에서는 의존하는 파일일 때 사용합니다 (ex)DB관련이나 로그 관련 dependency)implementation
: 컴파일 시점과 런타임 시점 라이브러리가 필요한 경우 사용합니다. 의존 라이브러리 수정 시 본 모듈까지만 재빌드합니다api
: 의존 라이브러리 수정 시 본 모듈을 의존하는 모듈들도 재빌드 합니다annotationProcessor
: 컴파일 시점에서 사용되는 어노테이션 처리 모듈을 정의합니다.
Lombok 의존성 추가 시
설정되는 항목은 다음과 같습니다
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
Compile 시점에 annotation 처리 모듈로 사용되어야 하고, 런타임 시점에서는 필요하지 않기 때문에, annotationProcessor 및 compileOnly로 구성되고 있는 것을 알 수 있습니다.
'Java > Spring Boot' 카테고리의 다른 글
스케줄러 cron 설정을 Global Properties 값으로 변경 (0) | 2024.07.01 |
---|---|
@TransactionalEventListener (0) | 2024.07.01 |
Scheduler 관련 내용정리 (0) | 2024.06.03 |
유효성 검사 / 데이터 검증 (Validation) (0) | 2024.05.31 |
View에 사용자 이름을 전달하는 Controller 중복 코드 제거 (0) | 2024.03.19 |