Gradle 은 application 의 빌드와 배포 문제를 해결하기 위한 framework 임 Java 의 경우, java class files, doc files, XML files, property files, 그 외 resources 등 하나의 프로젝트(application)에 굉장히 다양한 파일들을 담고 있음 게다가 각 프로젝트마다 각기 다른 구조 및 버전을 갖고 있어서 빌드하기가 굉장히 까다로움 Gradle 이 이러한 문제 해결에 도움을 줌 Gradle 이 하는 것 - 프로젝트 빌드하고 배포 - 의존성 관리 |
Gradle 이 사용하는 build file 의 default 명은 "build.gradle" Gradle 은 Domain-Specific Language (DSL) 을 정의함 (DSL : 어떤 도메인에서 특정 목적만을 달성하기 위해 사용되는 언어) 예를 들어 프로젝트는 Java 지만, build.gradle 은 Groovy 나 Kotlin 으로 쓰여질 수 있음 Gradle 이 진행하는 작업 단위 하나하나를 "task" 라고 부름 build.gradle 파일을 파싱해서 task 를 뽑아내고 작업을 진행함 task 들은 DAG 를 구성함. 따라서 모든 task 는 실행의 순서가 있으며 반복 실행되지 않음 먼저 실행된 task 의 output 이 나중에 실행된 task 의 input 이 되기도 함 Gradle 은 각 task 의 output 을 저장함 어떤 task 의 input 및 output 이 동일하다면, 다음에 동작할 때 해당 task 는 실행하지 않음으로써 리소스를 아낄 수 있음 |
Gradle 은 자기 자신을 자동으로 업데이트 할 수 있음 Gradle 은 의존성을 야기하는 lib 들 또한 자동으로 업데이트 할 수 있음 |
Gradle 의 핵심 구조는 다음과 같음 - Project : 소프트웨어 요소들의 능력(?) 이나 범위를 정의 - build script : "build.gradle". build 하기 위한 지시사항들(task)을 갖추고 있음 - task : 실질적인 작업 사항 |
hello world 를 프린트하는 굉장히 간단한 build.gradle 예제 (Groovy) < build.gradle > task helloWorld { doLast { println "Hello World" } } 위 내용을 갖는 build.gradle 을 만든 후, "gradle helloWorld" 명령어를 실행하면, gradle 이 실행되며 Hello World 가 실행됨 |
"gradle wrapper" 명령어를 실행하면, 기본적인 gradle 구조를 만들어 줌 - build.gradle - gradle - gradlew - gradlew.bat build.gradle 은 task 들을 모아둔 명령 파일이고, gradlew 로 시작하는 것들은 실행 파일임 각 OS 마다 사용되는 gradle 실행 파일이 다름. - gradlew : unix(MacOS) 에서 사용 가능한 gradle 실행파일 - graldew.bat : Window 에서 사용 가능 MacOS 에서 "./gradlew helloWorld" 같은 명령어 실행이 가능 해당 명령어로 위에서 만든 hello world 출력이 가능함 이렇게 만들어진 gradlew 를 사용하여 빌드하면 내 로컬 환경에 상관없이, 즉 내 컴퓨터에 java 나 gradle 이 설치되지 않아도 빌드가 가능함 |
'눈가락' 카테고리의 다른 글
[IT] CS 면접 대비 Python 질문 모음 (0) | 2024.02.17 |
---|---|
[JAVA] enum 간단한 샘플 코드 (0) | 2023.08.20 |
[JAVA] Generic 간단한 샘플 코드 (0) | 2023.08.20 |
[리뷰] 페어페딕7 카키 한 달 사용 후기 (1) | 2023.01.07 |
[GIT] The source branch is n commits behind the target branch 경고 해결 방법 (0) | 2022.11.17 |