Gradle의 의존성 구성(Configuration)은 프로젝트에서 사용하는 라이브러리나 모듈 등의 의존성을 어떻게, 언제, 어디서 사용할지를 정의하는 설정을 말한다. 프로젝트가 컴파일되거나 실행될 때 필요한 요소들을 관리하고 조직화한다.
Gradle의 의존성 구성을 통해 각 의존성이 필요한 시점과 범위를 제어하고 관리할 수 있다.
이 때, dependencies 블록은 프로젝트가 의존하는 라이브러리들을 선언하는 곳으로, 이 곳에 선언된 의존성들은 프로젝트가 정상적으로 빌드되고 실행되기 위해 필요한 외부 라이브러리들이다.
의존성 구성에는 여러 종류가 있는데, 각각 선언된 키워드에 따라 의미가 다르다.
이 키워드를 통해 추가된 의존성은 프로젝트의 컴파일 시점과 실행 시점 모두에서 사용된다. 또한 이 의존성은 프로젝트를 라이브러리로 만들었을 때 그 라이브러리를 사용하는 다른 프로젝트에는 전달되지 않는다. 따라서 해당 라이브러리를 사용하는 프로젝트는 이 의존성을 직접 추가해야 한다.
프로젝트의 테스트 코드 컴파일 시와 테스트 실행 시에만 사용된다. 이 의존성은 테스트를 위한 것이므로, 일반 코드나 다른 프로젝트에는 전달되지 않는다.
주석 처리기(annotation processor)로 사용되어 컴파일 시에 주석을 분석하고 처리한다.
이 의존성은 컴파일 시점에는 필요하지 않으며, 프로젝트의 실행 시점에만 사용된다.
developmentOnly는 개발환경에만 적용되는 설정이다. 운영환경에 배포되는 jar, war 파일에는 developmentOnly로 설치된 라이브러리는 제외된다.