Skip to content

Gradle #1 - 프로젝트 통합 빌드 툴

글 요약

  1. Gradle은 범용 소스코드 빌드 툴이며, 특히 java, kotlin 기반 프로젝트에서 많이 사용한다.

  2. Gradle로 프로젝트를 생성하기 위해 gradle init 명령어를 사용한다.

📙 Gradle이 무엇인가?

Gradle의 정의를 보면 아래와 같이 나타나 있습니다. 쉽게 말해서 빌드 자동화 툴 이라고 보면 됩니다.

Gradle 이란?

Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java, C/C++, and JavaScript.

출처 - Wikipedia

🤷‍♂️ 왜 사용하는가?

프로젝트가 1개의 파일이면 컴파일하는 데 문제가 없을텐데 프로젝트가 여러개의 파일로 구성되어 있고 점점 파일이 늘어나는 경우라면 손으로 작업하는게 정확하지 않고 시간이 오래 걸리기 때문이라고 생각합니다.

이를 해결하기 위해 빌드 자동화 툴이 생겼고 이미 나온 빌드툴인 mavenant의 장점을 합친 툴이라고 합니다.

사실 mavenant는 사용해보지 않았어요😢. 저 2개의 빌드 툴보다 좋은 점들은 다른 선배님들의 블로그에 자세히 설명해주셨어요. 그 중 일부분을 소개해볼까 합니다. 결론 부터 말씀드리자면, Gradle은 빌드 스크립트 작성하기 편하고, 표준화 되어 있으며, 외부 라이브러리를 참조할 수 있도록 만든 개선된 빌드 툴이라고 합니다.

이전 build 툴보다 Gradle이 좋은 이유

  1. antxml형태로 빌드 자동화를 하는데, 이는 프로젝트가 점점 커질 수록 다루기 힘들다. 하지만, Gradle은 사람들이 읽고 이해하기 편한 DSL(Domain Specific Language) 언어인 groovy언어를 채택하여 빌드 스크립트를 만드는데 시간을 절약할 수 있습니다.
  2. ant는 외부 라이브러리를 사용할 수 없다. 하지만 Gradle은 외부 라이브러리 기능을 사용할 수 있다.
  3. ant는 스크립트 표준이 없어서 다른 프로젝트에서 작성한 문서를 가져다 쓸 수 없다.
  4. mavenant에서 외부 라이브러리를 참조할 수 없는 문제점과, 스크립트 표준을 적용하여 재사용이 가능한 빌드 툴로 개발되었다.
  5. maven은 여전히 ant에서 사용하는 xml파일로 작성되어 있어 스크립트 작성이 어렵고 읽기가 힘들다.

📥 Gradle로 java 설치하기

Gradle 설치 방법은 아래의 공식 홈페이지에 자세히 나와 있습니다. 저는 Linux를 사용하고 있어서 SDKMAN!을 이용하여 설치하였습니다.

gradle 설치
# SDKMAN! 설치
curl -s "https://get.sdkman.io" | bash  

# gradle 설치
sdk install gradle 8.4

🆕 Gradle로 java 프로젝트 생성하기

Gradle을 이용해 java 프로젝트를 생성해 봅시다. gradle init명령어를 실행하면 Gradle로 관리 가능한 프로젝트를 만들 수 있습니다.

주의 사항

gradle init명령어를 실행하기 전 빈 디렉터리를 생성하여 그 안에서 작업해주세요! 그렇게 안하면 gradle 관련 파일들이 현재 디렉터리에 엄청 생성됩니다!

1️⃣ 프로젝트 종류 선택

프로젝트 종류
fromitive@dev:~/practice$ cd gradle-example
fromitive@dev:~/practice/gradle-example$ gradle init
Starting a Gradle Daemon (subsequent builds will be faster)

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4] 3

라이브러리 종류의 프로젝트를 생성하고자 합니다. 3: library를 선택합니다.

2️⃣ 프로젝트 언어 선택

프로젝트 언어 선택
Select implementation language:
  1: C++
  2: Groovy
  3: Java
  4: Kotlin
  5: Scala
  6: Swift
Enter selection (default: Java) [1..6] 3

Gradle이 지원하는 프로그램 언어 목록입니다. Java프로젝트를 생성하기 위해 3: Java를 선택합니다.

3️⃣ 빌드 스크립트 언어 선택

빌드 스크립트 언어 선택
Select build script DSL:
  1: Kotlin
  2: Groovy
Enter selection (default: Kotlin) [1..2] 2

빌드 스크립트에서 사용 될 언어를 선택하는 창입니다. 프로젝트가 생성되면, build.gradle이 생성 될 텐데, build.gradle이 작성된 프로그래밍 언어 문법을 선택하는 창이라고 보시면 됩니다. Java 문법과 비슷한 Groovy언어를 선택해줍니다.

3️⃣ 테스트 프레임워크 선택

테스트 프레임워크 선택
Select test framework:
  1: JUnit 4
  2: TestNG
  3: Spock
  4: JUnit Jupiter
Enter selection (default: JUnit Jupiter) [1..4] 4

프로그램을 테스트하기 위한 프레임워크를 선택하는 창 입니다. JUnit Jupiter를 사용하기 위해 4번을 입력합니다.

5️⃣ 프로젝트 상세 정보 입력

프로젝트 상세 정보
Project name (default: gradle-example): 
Source package (default: gradle.example): 
Enter target version of Java (min. 7) (default: 17): 17
Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] 

> Task :init
To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.4/samples/sample_building_java_libraries.html

BUILD SUCCESSFUL in 2m 9s
2 actionable tasks: 2 executed

프로젝트 상세 정보를 입력합니다. 3번째 줄에서 java 버전을 선택하는 창이 나타납니다. 현재 PC에 설치되어 있는 버전이 17버전이어서 default가 17버전으로 설정되어 있습니다.

6번째 줄에서 드디어 Gradle로 생성된 프로젝트가 나오며, 다음 블로그에서 이에 대해 상세히 다룰 예정입니다.


참고 자료


Comments