Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

블로그 이름 뭐하지

[Spring] Gradle 본문

Spring

[Spring] Gradle

가는말이고우면오는말은come 2024. 9. 27. 18:58

작성한 Java 코드를 설정에 맞게 자동으로 bulid 해주는 빌드 자동화 시스템이다.

Build : 소스코드를 실행가능한 결과물로 만들어주는 일련의 과정.

Gradle을 사용하면 Java 소스코드를 실행이 가능한 jar 파일로 만들어준다.

 

Gradle Project 구성

 

▷ .gradle : gradle 버전 별 엔진과 설정 파일

 

▷ .idea : 에디터 관련 파일

 

▷ gradle /wapper : 사용자가 gradle을 설치하지 않아도 gradle task를 실행하도록 도와줌

1) gradle-wrapper.jar : Wrapper 파일. 실행 스크립트가 동작하면 Wrapper에 맞는 환경을 로컬 캐시가 다운로드 받은 뒤 명령 task 실행

2) gradel-wrapper.properties : Gradle Wrapper 실행 파일

 

▷ gradlew : Unix용 실행 스크립트(Mac)

 

▷ gradlew.bat : Window용 실행 스크립트

 

▷ bulid.gradle : 의존성이나 플러그인 설정 등 프로젝트 빌드에 관한 기능 정의

 

▷ settings.gradle : 빌드할 프로젝트 설정

 

 

 

 

 

bulid.gradle의 사용

Gradle 기반의 빌드 스크립트.

해당 스크립트를 작성하면 소스코드를 빌드하고 라이브러리들의 의존성을 쉽게 관리할 수 있다.

groovy 또는 kotlin언어로 스크립트를 작성한다.

 

파일 자체가 Project 객체이다.

Project 객체: Project 단위에서 필요한 작업을 수행하기 위해 모든 메서드와 프로퍼티를 모아둔 슈퍼 객체

 

메서드

bulid.gradle이 가진 메서드 중 대표적인 것은 plugins, responsitories, dependencies, application 이다.

{}로 감싸진 부분은 Groovy의 클로저이다. Java의 람다식과 같은 부분으로 메서드의 인자로 넘겨질 수 있다.

1. plugins 

플러그인(plugin) : gradle task(어플리케이션 빌드부터 테스트까지의 작업 수행 단위)의 집합.

작업을 일일히 Gradle 파일에 정의해두면 복잡하고 비효율적이므로 개발사에서 미리 만든 Plugin 형태로 묶어둔다.

그 플러그인을 적용해두는 메서드이다.

//안드로이드 프로젝트의 플러그인 적용(apply)
plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

//Spring 프로젝트의 플러그인 적용
plugins {
    id 'java'
    id 'org.springframework.boot' version '3.3.4'
    id 'io.spring.dependency-management' version '1.1.6'
}

 

2. responsitories

저장소 설정을 담당한다.

클로저 내용은 RepositoryHandler를 통해 실행되며

Maven 중앙 저장소 추가를 위한 mavenCentral 메서드와

Bintray의 jCenter 저장소 추가를 위한 jcenter 메서드를 제공한다.

//사내 maven repository에서 라이브러리를 가져올 때의 명시

repositories {
    mavenCentral()
    maven {
        allowInsecureProtocol(true)
        url 'https://repo.company.com/repository/maven-repository/'
    }
}

 

3. dependencies

의존성 라이브러리를 추가할 때 사용된다.

개발에 필요한 외부 라이브러리들을 dependencies 부분에 작성 시

해당 라이브러리들을 Maven Repository(라이브러리 저장소)같은 외부 저장소에서 자동으로 다운로드 한다.

라이브러리 추가 후 코끼리 모양의 표시(gradle)가 뜨면 눌러 리프레시를 해주어야 적용이 된다.

의존성을 자동으로 관리해주어 라이브러리의 충돌 걱정이 없다.

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'
}

 

implementation : 의존 라이브러리 수정시 본 모듈까지만 재 빌드한다

api : 의존 라이브러리 수정시 본 모듈을 의존하는 모듈들을 모두 재 빌드한다

complieOnly : complie 시만 빌드하고 빌드 결과물에는 포함되지 않는다

testImplemetation : 테스트 코드를 수행할 때만 적용한다

annotaionProcessor : annotation processer을 명시한다.

 

 

 

참고한 링크

 

[Gradle] build.gradle의 동작원리 한 번에 정리하기

build.gradle은 무엇인가? build.gradle은 파일 자체가 Project 오브젝트(객체)로, Project 오브젝트는 Project 인터페이스를 구현하는 구현체이다. Project 오브젝트는 Project 단위에서 필요한 작업을 수행하기

kotlinworld.com

 

 

[Gradle] Plugin이란 무엇인가? 플러그인 이해하고 Custom Plugin 만들기

Gradle Plugin이란? Plugin이란 Gradle Task의 집합이다. Gradle Task는 어플리케이션 빌드부터 테스트까지 다양한 작업을 수행하는 작업 단위를 뜻한다. *만약 Task에 대한 이해가 부족하다면 다음글을 참조

kotlinworld.com

 

 

[Gradle]build.gradle 작성 방법 및 동작 원리 (Gradle 명령어, Gradle 프로젝트 구조, task 정의)

build.gradle 작성 방법 및 동작 원리 - Gradle이란? - Gradle 프로젝트 구조 - Gradle 명령어 - Gradl...

blog.naver.com

 

'Spring' 카테고리의 다른 글

[Spring] JDBC  (0) 2024.09.30
[Spring] Spring MVC  (0) 2024.09.30
[Spring] application.properties  (0) 2024.09.29
[Spring] Lombok  (0) 2024.09.29
[Spring] IntelliJ 테스트 코드 설정  (0) 2024.09.29