지금까지 Java로 신나게 기능을 구현하고 GitHub에 push를 해서 배포를 했다. 하지만 실제 Java 배포는 소스 코드를 컴파일하고, 필요한 의존성(라이브러리)을 포함시켜 실행 가능한 형태로 패키징해야한다. 그 결과로 .jar 파일이 생성되는데, 이 과정을 담당하는게 Gradle이다.
위에서 말한 gradle 기반으로 자바의 소스 코드를 빌드하고, 라이브러리들의 의존성을 쉽게 관리할 수 있도록 한 빌드 스크립트가 build.gradle이다.
plugins, configurations, repositories, dependencies 등으로 구성되는데,
plugins 블록은 프로젝트에서 사용할 플러그인을 선언하는 곳이다.
플러그인은 Gradle이 프로젝트를 빌드, 테스트, 배포하는 방법을 확장할 수 있게 한다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.0'
id 'io.spring.dependency-management' version '1.1.6'
}
configurations 블록은 프로젝트에서 사용할 의존성의 그룹을 정의하는 곳이다. 각 구성은 특정 유형의 의존성을 포함할 수 있으며, 이 구성은 빌드 프로세스의 다양한 단계에서 사용된다.
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories 블록은 Gradle이 의존성을 다운로드할 위치를 정의하는 곳이다. Maven Central, JCenter, , 로컬 저장소 등이 여기에 포함된다.
repositories {
mavenCentral()
}
dependencies 블록은 프로젝트에서 사용할 외부 라이브러리와 모듈을 선언하는 곳입니다. 각 의존성은 특정 구성에 속할 수 있습니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}