개몽가

[Build 빌드 도구] 빌드란? Gradle 이란? (Gradle 프로젝트 구성) 본문

Skill/Java

[Build 빌드 도구] 빌드란? Gradle 이란? (Gradle 프로젝트 구성)

개몽가 2021. 1. 7. 23:22

자료출처 : 구글

Gradle을 알아보기 전에 빌드 개념을 먼저 알아보자.

 

빌드(Build)

  • 소스코드를 실행가능한 소프트웨어로 만드는 것을 뜻함
  • 빌드 단계 중 컴파일링크 작업포함됨 (컴파일은 빌드의 부분집합) 

컴파일(Compile)

  • 소스코드를 컴퓨터가 이해할 수 있도록 바이너리 코드(기계어)로 변환하는 것을 뜻함
  • 변환 작업을 수행하는 것을 컴파일러라고 함 ex) Java 에서 JVM이 컴파일러

링크(Link)

  • A 객체에서 B 객체에 구현되어 있는 함수를 호출해서 사용할 때 이를 연결해서 하나의 실행파일을 만드는 작업을 뜻함

 

빌드 프로세스 

preprocessing(전처리)  ->  compile(컴파일)  ->  packaging (패키징)  ->  testing(테스팅)  ->  distribution(배포)

 

빌드 툴에는 Ant, Maven, Gradle 이 있고, 오늘 알아볼 빌드 도구는 Gradle이다

 

Gradle 란?

  • 오픈소스 기반의 Build 자동화 도구
  • 멀티 프로젝트 Build 지원
  • JVM에서 동작하는 스크립트 언어 Groovy 기반의 DSL(Domain Specific Lanaguge) 사용
  • Gradle Wrapper 이용 시, 서버에 Gradle이 설치되어 있지 않아도 빌드 지원 
  • Maven의 pom.xml을 Gradle 용으로 변환 가능
  • Maven 중앙 저장소를 지원해 라이브러리를 가져다 사용가능

Gradle 구조

intellJ에서 생성한 Gradle 기반의 Spring Boot 프로젝트 구조로 알아보자

 

gradle 기반 spring boot 프로젝트

 

Gradle Wrapper

Gradle을 사용하려면 서버에 기본적으로 설치되어야 한다.

하지만 Gradle Wrapper 이용 시 Gradle이 설치되어있지 않아도 사용가능하며 Java 버전과 상관없이 프로젝트를 빌드 할 수 있다.

Gradle Wrapper를 이용해 빌드하게 되면 프로젝트와 동일한 버전의 Gradle을 사용할 수 있기 때문에 사용을 권장한다.

 

서버에 설치된 gradle 이용 시,

$ gradle build

 

gradle wrapper 이용 시,

$ ./gradlew build

 

 

build.gradle 구조

구조는 아래 블로그를 참고하자

 

[Gradle] build.gradle 기본

Gradle에는 build.gradle라는 파일에 빌드에 대한 처리를 작성한다. 이 빌드 파일의 기본에 대해 설명한다. build.gradle 내용 및 플러그인 이전에 Gradle으로 "테스크"라는 것을 지정하고 다양한 작업을 수

araikuma.tistory.com