본문 바로가기

기타

[Gradle] Gradle 사용법 - 설치, 초기화 및

반응형

지난 글에서는 Gradle 이 무엇인지 알아보았다. 이번에는 Gradle 을 설치하고 사용해보는 튜토리얼을 진행해보려 한다. 해당 내용은 Gradle Getting Started 내용을 읽고 작성하였다.

1. Gradle 설치 & Gradle Wrapper

Gradle 을 사용하기 위해서는 우선 설치를 진행해야 한다. 하지만 신규 Gradle 빌드를 생성하는 것이 아니라 이미 존재하는 Gradle 빌드를 실행하려 한다면 따로 Gradle 을 설치할 필요가 없다. Gradle 빌드는 기본적으로 gradlew 또는 gradlew.bat 파일을 가지고 있는데 이들은 Gradle Wrapper 라고 한다.

-  Gradle Wrapper

Gradle Wrapper 는 미리 지정된 버전의 Gradle 을 호출하도록 하는 스크립트이다.

 

Gradle 빌드를 사용하기 위해서는 알맞은 Gradle 버전이 설치되어 있어야 한다. 하지만 매번 알맞는 버전의 Gradle 을 설치하는 것은 너무 비효율적이다. Gradle 은 이러한 문제를 해결하기 위하여 각 프로젝트마다 내장 Gradle 을 무조건 넣어주도록 하였다.

 

Gradle Wraper, 내장 Gradle 은 gradle init 시에 생성되는 gradle/wrapper 디렉토리 아래에 존재한다. 이 위치에는 wrapping 된 Gradle 파일들 gradle-wrapper.jar, gradle-wrapper.properties 등이 존재한다. 그리고 이러한 내장 Gradle 을 사용하기 위해서는 gradlew 명령어를 통해 사용할 수 있다.

- Gradle 설치

만약 신규 빌드를 생성하거나 기존에 존재하는 빌드에 Gradle Wrapper 를 추가하려 한다면 Gradle 을 설치해야 한다.

 

Gradle 을 설치하는 방법은 다양한데, 이 글에서는 homebrew 를 사용하여 설치했다. 이외에 설치 방법은 gradle 홈페이지의 문서를 참고하면 된다. (https://docs.gradle.org/current/userguide/installation.html#installation)

 

> brew install gradle
> gradle -v

...
------------------------------------------------------------
Gradle 7.6
------------------------------------------------------------
...

2. Gradle build 초기화

Gradle 프로젝트를 구성하기 위해서는 프로젝트 구성할 디렉토리에서 'init' 명령어를 실행하면 된다.

 

> gradle init

 

gradle init 명령어를 수행하면 터미널 프롬프트에서 프로젝트 타입, 사용할 프로그래밍 언어, 빌드 스크립트 언어, 테스트 프레임워크 등등의 빌드 프로젝트 초기화를 수행 할 수 있다.

 

초기화를 완료하면 아래와 같은 디렉토리 구조가 생성된다. 이 경우에는 Java 애플리케이션을 조건으로 프로젝트를 생성했다.

 

├── app
│         ├── build.gradle
│         └── src
│                       ├── main
│                       │            ├── java
│                       │            │           └── demo
│                       │            │                          └── App.java
│                       │            └── resources
│                       └── test
│                                     ├── java
│                                     │           └── demo
│                                     │                          └── AppTest.java
│                                     └── resources
├── gradle
│           └── wrapper
│                       ├── gradle-wrapper.jar
│                       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

- gradle

Gradle wrapper 파일들을 포함하고 있는 디렉토리이다. wrapper 디렉토리 아래에 gradle wrapper 파일이 들어있다.

- gradlew, gradlew.bat

gradle wrapper 를 실행하는 스크립트 파일이다. gradlew 는 Mac, Linux 용이고 gradle.bat 은 윈도우용 스크립트이다.

- settings.gradle

settings.gradle 은 build name 과 subproject 들을 정의해놓은 파일이다.

 

rootProject.name = 'demo'
include('app')

 

settings.gradle 파일은 위와 같이 두 줄로 이루어져있다.

rootProject.name 은 빌드의 이름을 할당한다. include 는 빌드의 실제 코드와 로직을 가지고 있는 서브프로젝트를 정의한다. 이 예제에서는 'app' 이라는 이름의 서브프로젝트로 빌드가 구성된다.

- build.gradle

build.gradle 은 'app' 프로젝트의 빌드 스크립트이다. build.gradle 의 초기 상태는 다음과 같다. 빌드 초기화 시에 입력한 내용들을 기반으로 작성된다.

 

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.1'
    // This dependency is used by the application.
    implementation 'com.google.guava:guava:31.1-jre'
}

application {
    // Define the main class for the application.
    mainClass = 'demo.App'
}

tasks.named('test') {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}

- src

src 디렉토리는 프로젝트의 소스코드가 위치하는 디렉토리 이다. main 디렉토리에는 기본 java source code 들이 위치하고 test 디렉토리에는 test source code 들이 위치한다.

3. application 실행

cli 명령어를 통해서 application 을 실행시킬 수 있다. 'run' 명령어를 실행하면 Gradle 은 build.gradle 의 application 플러그인의 mainClass property 에 정의된 클래스의 main 함수를 실행시킨다.

 

> ./gradlew run


> Task :app:run
Hello World!

BUILD SUCCESSFUL in 3s
2 actionable tasks: 2 executed

첫 실행 시에는 gradlew 스크립트에 따라서 gradle 을 다운로드하고 저장하는 과정을 거처야 하기 때문에 시간이 더 걸릴 수 있다.

4. application 빌드

application 플러그인을 통해서 application 을 관련 종속성 라이브러리 등과 함께 번들링할 수 있다. 이렇게 빌드 된 결과물은 app/build/districutions 디렉토리에 app.tar 와 app.zip 으로 저장된다.

 

> ./gradlew build

[Reference]

- https://docs.gradle.org/current/userguide/getting_started.html

 

Getting Started

Everyone has to start somewhere and if you’re new to Gradle, this is where to begin.

docs.gradle.org

- https://docs.gradle.org/current/userguide/gradle_wrapper.html#gradle_wrapper

 

The Gradle Wrapper

It is recommended to always execute a build with the Wrapper to ensure a reliable, controlled and standardized execution of the build. Using the Wrapper looks almost exactly like running the build with a Gradle installation. Depending on the operating syst

docs.gradle.org

- https://kotlinworld.com/314

 

gradlew와 gradle.bat 을 사용해 gradle 설치하지 않고 사용하기

Gradle과 Gradle version 모든 프로그램들이 그렇듯 Gradle은 버전이 다르면 사용할 수 없다. 예를 들어 6.x.x 버전의 Gradle을 7.x.x를 사용해 사용할 수 없다. 만약 사용하려고 하면 error가 생기게 된다. 이

kotlinworld.com

 

반응형

'기타' 카테고리의 다른 글

[NGINX] NGINX 란?  (1) 2023.05.11
[MongoDB] Aggregation  (0) 2023.05.02
[Gradle] Gradle 이란?  (1) 2023.01.14
[기타] Sync - Async / Blocking - Non-Blocking  (0) 2022.04.05
[Kafka] Kafka Consumer 예제  (0) 2022.03.22