랄라

Gradle이란? 본문

내일배움캠프/공부정리

Gradle이란?

devdaeun 2025. 2. 3. 08:36

Groovy 언어를 기반으로 한 빌드 자동화 시스템,  Java 소스 코드를 실행한 가능한 jar 파일로 만들어준다.

*빌드 : 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정


bulid.gradle

- Gradle 기반의 빌드 스크립트로, 소스코드를 빌드하고 의존성을 주입 및 관리할수있다.

- groovy, kotiln 두가지의 언어 중 선택하여 스크립트 작성가능.

 

dependencies에 의존성을 주입할 라이브러리를 추가하면,

해당 라이브러리를 모아둔 외부 저장소를 사용하여 자동적으로 다운받아진다. 

*라이브러리: 필요한 기능들이 모여있는 코드의 묶음

implementation 컴파일과 런타임에 모두 필요한 라이브러리 - 컴파일 시런타임 시 모두 필요.
- 다른 프로젝트에서 의존성으로 포함되지 않음.
runtimeOnly 런타임 시에만 필요한 라이브러리 - 컴파일 시에는 필요없고, 애플리케이션 실행 시에만 필요.
- 예: 데이터베이스 드라이버 (JDBC).
compileOnly 컴파일 시에만 필요한 라이브러리 (런타임에는 필요 없음) - 컴파일 시에만 필요하고, 애플리케이션 실행 시에는 포함되지 않음.
- 예: Lombok (주석 처리기).
testImplementation 테스트 코드에서만 필요한 라이브러리 - 테스트 코드에서만 사용되고, 프로덕션 코드에는 포함되지 않음.
- 예: JUnit, Mockito.
testRuntimeOnly 테스트 실행 시에만 필요한 라이브러리 - 테스트 실행 시에만 필요.
- 예: 테스트 관련 라이브러리 엔진 (JUnit5 엔진).
annotationProcessor 어노테이션 프로세서를 위한 라이브러리 - 어노테이션 프로세서에만 필요한 라이브러리.
- 예: Lombok (어노테이션 기반 코드 생성).
api 다른 프로젝트에서 사용할 때 의존성도 포함되게 할 라이브러리 - 다른 프로젝트에서 사용할 때도 함께 포함.
- 주로 java-library 플러그인에서 사용.
- 예: Guava 같은 라이브러리.

build.gradle의 구성설명(추가)

더보기

 

plugins: 프로젝트의 빌드, 및 빌드도구확장에 사용

id '{플러그인}' version '{버전}' 형식으로 작성된다.

 

group: 프로젝트의 그룹id 

 

version: 프로젝트의 버전설정

 

java: 사용하고자하는 Java의 버전 지정하는데에 사용

toolchan은 JDK 버전을 설정하는 옵션이다.

 

configurations: gradle의 의존성 범위설정

complieOnly는 컴파일시에만 필요한 의존성을 설정하는데에 사용.

 

repositories: 의존성 라이브러리를 찾을 위치(저장소)지정

 

*외부 라이브러리 예시  Maven Repository: Search/Browse/Explore

해당 링크에서 원하는 라이브러리를 검색하여 적용이 가능하다.

더보기
본인이 사용하는 빌드도구에 맞게 사용할 수 있다.

settings.gradle

- 보통 루트 프로젝트의 이름이 기본적으로 작성되어있다.

( rootProject.name = '프로젝트 명' )

- 프로젝트의 포함관계를 설정하거나, 필요에 따라 특정 설정들을 추가할때 사용된다.

'내일배움캠프 > 공부정리' 카테고리의 다른 글

3 Layer Architecture  (0) 2025.02.04
Servlet 과 Dispacher Servlet  (0) 2025.02.04
MVC 구조  (0) 2025.02.04
WebServer 와 WAS(+Apache Tomcat)  (1) 2025.02.03
Restful API 란?  (1) 2025.02.03