build.gradle 파일에 있는 코드들은
각 역할이 무엇일까?
build.gradle 파일에 작성한 코드들을 가지고 Gradle 빌드 시스템을 설정하여 프로젝트를 구축하고 실행하는 데 필요한 여러 가지 측면을 관리하는 데 사용된다.
즉, 작성한 내용에 따라 프로젝트의 필요에 맞게 수정되고 구성될 수 있으며, 빌드 시스템이 프로젝트의 동작을 어떻게 정의하는지를 결정한다.
build.gradle 코드 예시
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.project'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-mustache'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
plugins
해당 프로젝트에서 사용하는 플로그인들이 작성되어 있다.
예시로
Java 프로젝트를 빌드하기 위해서 'java' 플러그인을 추가
Spring Boot 플로그인은 라이브러리의 디펜던스(dependencie)들도 모두 관리해 주기 때문에
플로그인에서 버전을 바꿔서 저장해 주면 다른 라이브러리 버전들도 같이 올라간다.
Proejct Metadata
위의 코드의 각 역할을 설명하자면
- group = 'com.project'
프로젝트의 그룹/패키지 이름을 설정 - version = '0.0.1-SHAPSHOT'
프로젝트의 버전을 설정
Java
java 소스 코드의 호환성을 설정하는 것으로
위의 코드에서는 java 17 버전을 사용하도록 설정했다.
configurations
프로젝트의 의존성을 설정하는 곳이다.
위의 코드에서는 lombok 때문에 configurations 종류에 annotationProcessor을 추가한 것이다.
repositories
프로젝트가 의존하는 외부 라이브러리나 플러그인을 가져올 수 있는 위치를 지정한다.
즉, 프로젝트가 의존성을 다운로드 받을 저장소를 지정하는 것으로 위의 코드에서는 Maven Central 저장소로 지정했다.
dependencies
프로젝트가 필요로 하는 외부 라이브러리나 모듈의 의존성을 정의한다.
위의 코드에서는 jpa, mustache, web, lombok, h2DB 등을 의존성으로 추가했다.
의존성 앞에 작성된 것이 Configuration으로 각 의존성이 사용되는 시점을 설정한다.
Configuration 종류
- implementation
프로젝트의 컴파일과 런타임 시에 모두 사용되는 의존성 - compileOnly
컴파일 시에만 사용되는 의존성 - runtimeOnly
런타임 시에만 사용되는 의존성 - annotationProcessor (configuration에서 lombok 때문에 새로 추가한 것)
컴파일 시에 소스 코드를 분석하고 처리하는데 사용되는 의존성
주로 어노테이션 프로세서를 사용할 때 필요한 라이브러리를 정의한다.
런타임에는 별로 필요하지 않지만 컴파일 시에만 필요한 라이브러리를 추가할 때 사용된다. - testImplementation
테스트 코드를 작성할 때 필요한 의존성
Test Task Configuration
test 태스크를 구성하는 곳으로
위의 코드에서는 JUnit 테스트 플랫폼을 사용하도록 설정했다.
참고 및 출처
'Spring Boot' 카테고리의 다른 글
application.yaml에 작성한 내용 설명 (0) | 2023.12.22 |
---|---|
서버 정지할 때 Build cancelled while executing task 에러 해결하기 (0) | 2023.12.18 |
IntelliJ에서 한글이 깨져서 출력 되는 현상 고치기 (0) | 2023.11.25 |
H2 DB를 웹 콘솔에서 접근할 수 있게 설정하기 (0) | 2023.11.25 |
Repository의 상속 관계와 각 기능들 (0) | 2023.11.25 |