Gradle과 build.gradle
Gradle은 그루비(Groovy)를 기반으로 한 빌드 도구이며 빌드 자동화, 의존성 관리 등이 가능합니다. build.gradle 파일은 빌드 스크립트라고 하며 의존성, 플러그인 등 빌드에 필요한 설정을 할 수 있습니다.
build.gradle 구성
buildscript
일반 소스코드가 아닌 gradle로 task를 수행할 때 사용되는 설정이며 buildscript 안에서의 repository와 dependency는 밖에 설정한 repository와 dependency는 큰 차이가 있습니다.
buildscript {
ext {
queryDslVersion = "5.0.0"
}
repositories {
}
dependencies {
}
}
plugins
Plugin은 Gradle Task의 집합입니다. Springboot 프로젝트를 만들면 아래와 같은 플러그인이 기본적으로 설정되고 플러그인이 포함하는 Task를 사용할 수 있습니다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.4'
id 'io.spring.dependency-management' version '1.1.0'
}
repositories
소스 코드에 필요한 라이브러리를 다운받는 저장소입니다. mavenCentral() 외에도 jcenter(), google() 등이 있습니다.
repositories {
mavenCentral()
}
dependencies
소스코드에 필요한 외부 라이브러리입니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.querydsl:querydsl-jpa:${queryDslVersion}'
implementation 'com.querydsl:querydsl-apt:${queryDslVersion}'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
}
dependency configuration
어떠한 시점에 어떠한 라이브러리가 필요한지 설정하는 부분입니다. runtime classpath와 compile classpath는 차이가 있기 때문에 소스 코드가 정상적으로 컴파일 되었다고 해서 정상적으로 실행된다는 보장은 없습니다.
- implementation = 컴파일/런타임 시점에 라이브러리 사용
- compileOnly = 컴파일 시점에 라이브러리 사용
- runtimeOnly = 런타임 시점에 라이브러리 사용
- testCompileOnly = 테스트 컴파일 시점에 라이브러리 사용
- testRuntimeOnly = 테스트 런타임 시점에 라이브러리 사용
'기타 > 기타' 카테고리의 다른 글
윈도우 환경에서 homebrew 설치하기 (0) | 2023.08.17 |
---|---|
Git 명령어 정리 (0) | 2023.05.09 |
[DevOps] CI/CD 란 (1) | 2023.04.29 |
[Web] 웹 서버, WAS, 서블릿에 대하여.. (0) | 2023.03.27 |