Gradle #1 - 프로젝트 통합 빌드 툴
Gradle 시리즈
글 요약
-
Gradle은 범용 소스코드 빌드 툴이며, 특히
java
,kotlin
기반 프로젝트에서 많이 사용한다. -
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개의 파일이면 컴파일하는 데 문제가 없을텐데 프로젝트가 여러개의 파일로 구성되어 있고 점점 파일이 늘어나는 경우라면 손으로 작업하는게 정확하지 않고 시간이 오래 걸리기 때문이라고 생각합니다.
이를 해결하기 위해 빌드 자동화 툴
이 생겼고 이미 나온 빌드툴인 maven
과 ant
의 장점을 합친 툴이라고 합니다.
사실 maven
과 ant
는 사용해보지 않았어요😢. 저 2개의 빌드 툴보다 좋은 점들은 다른 선배님들의 블로그에 자세히 설명해주셨어요. 그 중 일부분을 소개해볼까 합니다. 결론 부터 말씀드리자면, Gradle은 빌드 스크립트 작성하기 편하고, 표준화 되어 있으며, 외부 라이브러리를 참조할 수 있도록 만든 개선된 빌드 툴이라고 합니다.
이전 build 툴보다 Gradle이 좋은 이유
ant
는xml
형태로 빌드 자동화를 하는데, 이는 프로젝트가 점점 커질 수록 다루기 힘들다. 하지만, Gradle은 사람들이 읽고 이해하기 편한DSL(Domain Specific Language)
언어인groovy
언어를 채택하여 빌드 스크립트를 만드는데 시간을 절약할 수 있습니다.ant
는 외부 라이브러리를 사용할 수 없다. 하지만 Gradle은 외부 라이브러리 기능을 사용할 수 있다.ant
는 스크립트 표준이 없어서 다른 프로젝트에서 작성한 문서를 가져다 쓸 수 없다.maven
은ant
에서 외부 라이브러리를 참조할 수 없는 문제점과, 스크립트 표준을 적용하여 재사용이 가능한 빌드 툴로 개발되었다.maven
은 여전히ant
에서 사용하는xml
파일로 작성되어 있어 스크립트 작성이 어렵고 읽기가 힘들다.
📥 Gradle로 java 설치하기
Gradle 설치 방법은 아래의 공식 홈페이지에 자세히 나와 있습니다. 저는 Linux
를 사용하고 있어서 SDKMAN!을 이용하여 설치하였습니다.
🆕 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로 생성된 프로젝트가 나오며, 다음 블로그에서 이에 대해 상세히 다룰 예정입니다.
참고 자료
참고 자료
Gradle의 정의 및 ant와 maven 비교
Ant, Maven, Gradle 이 뭘까? - Tistory
[build] ant, maven, gradle 차이점 - 네이버 블로그
Ant vs Maven vs Gradle - baeldung
Gradle 설치 방법