[spring boot] build.gradle 설정
spring boot 3.4.2 version에서의 설정 예제입니다. |
Spring Boot에서 build.gradle은 프로젝트의 빌드와 의존성을 관리하는 핵심 파일입니다. 이 파일은 Gradle 빌드 시스템을 사용하는 프로젝트에서 작성되며, Java 애플리케이션의 빌드 프로세스를 간단하고 효율적으로 관리할 수 있게 해줍니다. |
1. 기본 구조
build.gradle 파일의 기본 구조는 다음과 같습니다.
plugins {
id 'org.springframework.boot' version '3.4.2' // Spring Boot 플러그인
id 'io.spring.dependency-management' version '1.1.7' // 의존성 관리 플러그인
id 'java' // Java 플러그인
}
group = 'com.example' // 프로젝트 그룹 ID
version = '0.0.1-SNAPSHOT' // 프로젝트 버전
java {
// Java Toolchain을 사용해 프로젝트에서 사용할 Java 버전을 설정합니다.
toolchain {
// Java 17 버전을 사용하도록 설정합니다.
// Java 17은 LTS 버전으로 안정적이고 장기 지원이 제공됩니다.
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
// 'compileOnly'는 컴파일 시에만 필요한 의존성을 지정합니다.
// 'annotationProcessor'의 설정을 상속받아 Lombok과 같은 의존성을 처리합니다.
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
// 프로젝트에 필요한 의존성을 다운로드할 리포지토리를 설정합니다.
// 'mavenCentral()'은 오픈소스 라이브러리를 받을 수 있는 대표적인 Maven 리포지토리입니다.
mavenCentral() // Maven 중앙 저장소
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter' // Spring Boot 핵심
testImplementation 'org.springframework.boot:spring-boot-starter-test' // 테스트 라이브러리
}
2. 주요 구성 요소
1) 플러그인 설정
plugins 블록은 Gradle에서 사용하는 플러그인을 정의합니다.
- org.springframework.boot
Spring Boot 애플리케이션을 Gradle로 빌드할 수 있게 해주는 플러그인. - io.spring.dependency-management
Spring Boot의 의존성 버전을 자동으로 관리합니다. - java
Java 빌드 도구를 활성화합니다.
2) 프로젝트 속성
- group: Maven 아티팩트의 그룹 ID.
- version: 애플리케이션 버전 정보.
- java
프로젝트에서 사용할 Java 버전을 설정합니다.
3) 저장소 설정
repositories 블록은 의존성을 가져올 저장소를 정의합니다.
- mavenCentral(): Maven Central 저장소.
- jcenter(): JCenter 저장소(현재는 사용되지 않는 경우가 많음).
- google(): Google 저장소(Android 관련 프로젝트에서 주로 사용).
4) 의존성 관리
dependencies 블록은 프로젝트에서 사용하는 라이브러리와 프레임워크를 정의합니다.
의존성 유형
- implementation: 런타임 및 컴파일 시 사용되는 의존성.
- compileOnly: 컴파일 시 필요하지만, 런타임에는 포함되지 않음.
- runtimeOnly: 런타임에만 필요한 의존성.
- testImplementation: 테스트 코드에서만 사용되는 의존성
의존성 예제
dependencies {
// Spring Boot 핵심 의존성
implementation 'org.springframework.boot:spring-boot-starter'
// Spring Web (REST API 개발)
implementation 'org.springframework.boot:spring-boot-starter-web'
// Spring Data JPA (데이터베이스와의 연동)
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// MySQL 데이터베이스 드라이버
runtimeOnly 'mysql:mysql-connector-java'
// 테스트 관련 의존성
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
3. 실무에서 자주 사용되는 항목
1) Lombok 플러그인 추가
Lombok은 Java 코드에서 반복되는 Getter, Setter 등을 줄이는 데 유용합니다.
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// 테스트에서 사용하기 위한 의존성
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
2) 데이터베이스 연동
MySQL, PostgreSQL, H2와 같은 데이터베이스를 사용할 때 관련 드라이버를 추가합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
}
3) Spring Security
Spring Security로 인증 및 권한 부여를 구현할 때 의존성을 추가합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
}
4) Gradle Task 설정
빌드, 테스트, 실행 등의 작업을 커스터마이즈하려면 tasks 블록을 추가합니다.
tasks.named('test') {
useJUnitPlatform() // JUnit 5 플랫폼 사용
}
'Java > Spring Boot' 카테고리의 다른 글
[spring boot] mybatis - mssql application.yml 설정 (0) | 2025.03.11 |
---|---|
[spring boot] MultipartFile이란? (0) | 2025.02.27 |
[spring boot] build.gradle dependencies (의존성) 설정 (1) | 2025.01.24 |
[spring boot] jpa - mariadb application.properties 설정 (2) | 2025.01.22 |
[spring boot] mybatis - mariadb application.yml 설정 (0) | 2025.01.08 |