SW/Gradle

Gradle 프로젝트 생성 및 커스텀 태스크 추가 방법

얇은생각 2024. 10. 16. 07:30
반응형

Gradle은 소프트웨어 개발에서 중요한 빌드 자동화 도구, 특히 자바 기반 프로젝트에서 널리 사용되고 있습니다. Maven이나 Ant와 같은 이전 빌드 도구와 비교하여 더 유연하고 강력한 기능을 제공하며, 다양한 언어와 환경에서 효과적으로 사용할 수 있습니다. 이번 글에서는 Gradle 프로젝트를 처음부터 생성하고, 그 안에 커스텀 태스크를 추가한 후 실행하는 방법을 단계별로 설명하겠습니다. 이 과정을 통해 Gradle의 기본 구조와 활용 방법을 이해할 수 있습니다.

 

Gradle 프로젝트 생성 및 커스텀 태스크 추가 방법

 

Gradle 프로젝트 생성

먼저, Gradle 프로젝트를 생성하기 위한 기본 디렉토리 구조를 설정해야 합니다. 프로젝트 폴더를 생성한 후 Gradle CLI(Command Line Interface)를 사용해 Gradle 프로젝트 파일을 자동으로 생성할 수 있습니다.

 

 

1. Gradle 프로젝트 폴더 생성

시작하기 전에, 프로젝트 파일을 저장할 폴더를 먼저 만들어야 합니다. 터미널이나 명령 프롬프트에서 아래 명령어를 입력해 Gradle 프로젝트 폴더를 생성합니다:

mkdir GradleProjects
cd GradleProjects
mkdir FirstProject
cd FirstProject

 

FirstProject 폴더는 Gradle 프로젝트의 루트 디렉토리가 됩니다.

 

 

2. Gradle 프로젝트 초기화

다음으로, Gradle CLI를 사용하여 이 폴더를 Gradle 프로젝트로 초기화합니다. Gradle을 설치한 후, 터미널이나 명령 프롬프트에서 아래 명령어를 입력합니다:

gradle init

 

 

이 명령어는 프로젝트의 기본 파일을 자동으로 생성해 줍니다. 명령어를 실행하면 프로젝트 유형, 스크립팅 언어 선택 등 몇 가지 질문이 표시됩니다.

  1. 프로젝트 유형 선택: 1을 선택하여 기본 프로젝트를 생성합니다.
  2. 스크립팅 언어 선택: Gradle 스크립트를 작성할 때 사용할 언어로 Groovy 또는 Kotlin을 선택할 수 있습니다. 여기서는 Groovy를 선택합니다.
  3. 프로젝트 이름 설정: 기본값으로 폴더 이름이 사용됩니다. 이름을 변경하고 싶다면 원하는 이름을 입력하고, 그대로 사용하고 싶다면 Enter를 누릅니다.

이제 FirstProject 폴더 내에 Gradle 프로젝트가 생성되었습니다. 여기에는 build.gradle 파일을 포함하여 Gradle 프로젝트를 구성하는 여러 파일이 생성됩니다.

 


 

Gradle 프로젝트 구조 설명

Gradle CLI를 통해 초기화한 프로젝트는 여러 파일을 포함하고 있습니다. 그 중에서도 가장 중요한 파일은 build.gradle입니다. 이 파일은 프로젝트의 빌드 설정을 정의하며, Gradle이 빌드를 실행할 때 참조하는 주요 구성 파일입니다.

  • build.gradle: Gradle 빌드 설정 파일로, 프로젝트에 필요한 의존성, 태스크, 플러그인 등을 정의할 수 있습니다.
  • gradle-wrapper: Gradle 버전 관리를 위한 Gradle Wrapper 파일입니다. Gradle Wrapper는 특정 프로젝트에 적합한 Gradle 버전을 자동으로 다운로드하고 설치해주는 기능을 제공합니다. 이는 팀원이나 CI(Continuous Integration) 환경에서 일관된 Gradle 버전을 사용할 수 있게 해줍니다.
  • settings.gradle: 프로젝트의 이름을 지정하거나, 다중 모듈 프로젝트의 경우 모듈을 정의할 수 있습니다.

 


 

Gradle 커스텀 태스크 추가하기

이제 프로젝트에 커스텀 태스크를 추가해 보겠습니다. Gradle은 기본적으로 여러 가지 태스크를 제공하지만, 사용자가 직접 태스크를 정의할 수도 있습니다. 태스크는 프로젝트 빌드, 테스트, 배포 등의 작업을 자동화하는 단위입니다.

 

1. build.gradle 파일 수정

build.gradle 파일을 열고, 커스텀 태스크를 추가합니다. Gradle의 스크립트는 Groovy 언어를 사용하여 작성됩니다. 다음은 간단한 커스텀 태스크 예시입니다:

task firstTask {
    doLast {
        println 'Gradle Rocks!'
    }
}

 

 

이 코드는 firstTask라는 태스크를 정의하고, 이 태스크가 실행될 때 "Gradle Rocks!"라는 메시지를 출력하도록 합니다. Groovy의 간단한 문법을 사용하여 커스텀 태스크를 정의할 수 있으며, 이 태스크는 이후에 명령어를 통해 실행할 수 있습니다.

 

 

2. 커스텀 태스크 실행

태스크를 추가한 후, 터미널에서 gradle tasks --all 명령어를 실행하면 프로젝트에 정의된 모든 태스크 목록을 확인할 수 있습니다. 방금 추가한 firstTask가 목록에 포함되어 있을 것입니다.

gradle tasks --all

 

 

이제 firstTask를 실행해 봅시다:

gradle firstTask

 

위 명령어를 실행하면 Gradlebuild.gradle 파일을 읽고 firstTask를 실행하여 터미널에 "Gradle Rocks!"라는 메시지를 출력합니다.

 


 

Gradle Wrapper 사용하기

Gradle 프로젝트를 여러 환경에서 사용할 때 가장 큰 문제 중 하나는 환경별 Gradle 버전 차이입니다. 이를 해결하기 위해 GradleGradle Wrapper라는 기능을 제공합니다. Gradle Wrapper는 프로젝트별로 Gradle 버전을 지정하고, 해당 버전을 자동으로 다운로드하여 설치해주는 기능을 합니다.

Gradle 프로젝트를 생성할 때 gradle init 명령어를 실행하면 기본적으로 Gradle Wrapper가 함께 생성됩니다. gradlew 스크립트를 사용하여 Gradle 버전을 제어할 수 있으며, 이를 통해 일관된 개발 환경을 유지할 수 있습니다.

 

Gradle Wrapper 실행

Gradle을 수동으로 설치하지 않아도, 프로젝트 폴더에 있는 gradlew 명령어를 사용하면 Gradle이 자동으로 다운로드 및 설정됩니다. 예를 들어, firstTask를 실행할 때 Gradle Wrapper를 사용하려면 다음과 같이 입력합니다:

./gradlew firstTask

 

 

Gradle Wrapper는 프로젝트의 gradle-wrapper.properties 파일에서 지정된 Gradle 버전을 기반으로 작업을 수행합니다. 이 파일을 통해 각 프로젝트마다 다른 Gradle 버전을 사용할 수 있어, 개발 환경 간의 호환성을 보장합니다.

 


 

Gradle 프로젝트의 확장성

Gradle은 단일 프로젝트뿐만 아니라, 다중 모듈 프로젝트도 지원합니다. 다중 모듈 프로젝트에서는 여러 모듈을 독립적으로 빌드하고 관리할 수 있으며, 각 모듈이 서로 의존성을 가질 수 있습니다. 이를 통해 복잡한 엔터프라이즈 애플리케이션도 효율적으로 관리할 수 있습니다.

또한, Gradle플러그인을 통해 다양한 기능을 추가할 수 있습니다. 대표적으로 Java 플러그인, Spring Boot 플러그인, JUnit 플러그인 등이 있으며, 이러한 플러그인을 사용해 더 복잡한 빌드 및 테스트 과정을 자동화할 수 있습니다.

 


 

결론

이 글에서는 Gradle을 사용해 프로젝트를 생성하고, 커스텀 태스크를 추가 및 실행하는 방법을 살펴보았습니다. Gradle은 유연한 구조와 강력한 기능을 제공하여, 다양한 프로젝트에서 빌드 및 배포 과정을 간소화할 수 있는 도구입니다. 특히 Gradle Wrapper를 통해 일관된 개발 환경을 제공할 수 있다는 점에서 팀 작업과 CI/CD 파이프라인에서 매우 유용합니다.

이번 가이드를 통해 Gradle의 기본적인 사용 방법을 익혔다면, 더 복잡한 프로젝트에서도 Gradle을 활용해보세요. 플러그인과 스크립팅 언어의 유연성을 통해 거의 모든 작업을 자동화할 수 있으며, 이를 통해 더 효율적인 개발 환경을 구축할 수 있습니다. Gradle로 빌드 자동화를 극대화하고 프로젝트 관리의 복잡성을 줄여보세요.

반응형