반응형
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
compileOnly 'org.projectlombok:lombok'
}
라이브러리 앞에 붙은 keyword들은 각 라이브러리들이 적용될 범위(scope)를 뜻한다.
* 공식 사이트
implementation
: 전 범위(컴파일 + 런타임)에 걸쳐서 적용- A 모듈을 수정하게 되면 이 모듈을 직접 의존하는 모듈만 recompile 된다.
testImplementation
: 테스트 시(컴파일 + 런타임)에만 적용debugImplementation
: 디버그 모드에서만 적용androidTestImplementation
: 안드로이드 테스트가 수행될 떄만 적용compileOnly
: 컴파일 시 적용runtimeOnly
: 런타임 시 적용testRuntimeOnly
: 테스트 런타임에 적용annotationProcessor
: 어노테이션 프로세서 사용하는 라이브러리인 경우 적용, 컴파일에만 적용
- Gradle 6.xx부터 "annotationProcessor"을 사용하면 별다른 설정을 하지 않아도 gradle 자체에서 적절한 AnnotationProcessor를 선택하여 사용한다.
deperecated
compile
: 모든 모듈을 재빌드- compile 은 implementation 보다 더 많은 라이브러리를 빌드한다.
- A모듈을 수정하게 되면 A를 의존하는 모든 모듈이 재빌드한다. (시간이 오래걸린다)
api
: 해당 모듈이랑 관계있는 모듈 재빌드- api로 추가한 라이브러리에서 의존하고 있는 라이브러리에 의존하고자 할 때 사용 (컴파일 + 런타임)
- a가 b 라이브러리를 api로 추가하면 a는 b에서 사용 중인 라이브러리 c를 사용할 수 있다.
- 이 방법은 조심해야 하는데 b에서 사용하고 있는 라이브러리 c를 d로 바꾼다면? a가 사용하는 c가 사라졌기 때문에 문제가 발생할 수도 있다.
- 현재 시점 아직 deperecated 되지 않았으나, 사용을 권장하지 않는다
- api로 추가한 라이브러리에서 의존하고 있는 라이브러리에 의존하고자 할 때 사용 (컴파일 + 런타임)
참고
https://cantcoding.tistory.com/59
https://velog.io/@kanamycine/build.gradle%EA%B3%BC-Dependencies
반응형
'기타' 카테고리의 다른 글
모놀리식 아키텍처(MA) vs 마이크로서비스 아키텍처(MSA) (2) | 2024.05.16 |
---|---|
[AWS] IAM (Identity and Access Management) (0) | 2024.05.10 |
[페어 프로그래밍] 선택 정렬(Selection Sort) 구현하기 (0) | 2024.04.29 |
[방법론] 폭포수 vs 애자일 (0) | 2024.04.15 |
[페어 프로그래밍] 버블 정렬(Bubble Sort) 구현하기 (0) | 2024.04.05 |