[Java] Gradle?

노성빈·2024년 4월 21일

JAVA

목록 보기
11/11

📌 Gradle이란?

오픈소스 빌드 자동화 툴이다.
거의 모든 타입의 소프트웨어를 빌드할 수 있는 유연함이 특징이다.

📌 Gradle의 특징

  • High Performance
  • JVM Foundation
  • Conventions
  • Extensibiltiy
  • IDE, Build Scan support

✏️ High Perfomance

  • Gradle은 실행시켜야 하는 task만 실행시키고 다른 불필요한 동작은 하지 않는다.
  • build cache를 사용함으로써 이전 실행의 task output을 재사용할 수 있다.
  • 서로 다른 기계에서도 build cache를 공유하여 성능을 높일 수 있다.

task

  • Gradle 프로젝트의 작업 단위이다.
  • Groovy로 작성된다.

Groovy

  • JVM에서 사용되는 스크립트 언어이다.
  • Java와 문법이 유사하며, 호환성이 우수하다.

build cache

빌드 작업의 결과물을 캐싱하여 이후에 동일한 작업을 빠르게 수행할 수 있도록 하는 기능이다.

✏️ JVM Foundation

  • Gradle은 JVM에서 작동된다.
  • Java Standard API 빌드에 사용할 수 있다.
  • 입력 혹은 출력이 변경되어 실행할 필요가 있는 작업들만 실행함으로 필요 없는 작업을 하지 않는다.

✏️ Conventions

  • Maven을 토대로 공통 타입을 만들었다.
  • 플러그인을 적절히 사용하면 많은 프로젝트에서도 간단한 빌드 스크립트 사용이 가능하다.
  • 오버라이딩, 사용자 정의 task추가가 가능하다.
  • Convention을 기반으로 많은 커스터마이징이 가능하다.

✏️ Extensbility

Gradle을 확장하면 고유의 task 타입을 제공하거나 모델을 빌드할 수 있다.

✏️ IDE, Build Scan support

  • Android Studio, IntelliJ IDEA, Eclipse 등의 IDE에서 Gradle을 임포트하여 사용할 수 있다.
  • 빌드를 모니터링할 수 있는 Build Scan을 지원한다.

Build Scan

  • Gradle 빌드의 성능, 의존성, 작업 실행 및 다양한 기타 측면에 대한 상세한 분석 및 보고서를 생성하는 기능이다.
  • 이를 다른사람과 함께 공유가 가능하다.

reference

https://hstory0208.tistory.com/entry/Gradle이란-왜-사용하는지에-대해-알아-보자
https://limdevbasic.tistory.com/12
https://velog.io/@jakeseo_me/Gradle이란

0개의 댓글