Gradle과 Maven에 대해 알아보고 비교하는 글입니다.

 

이 글에서는 Gradle과 Maven의 고급 문법을 다루지 않습니다.


Gradle vs Maven

  • Gradle에 비해 Maven이 점유율이 높은 상황 (2022-02 기준, 점차 Gradle의 점유율은 상승 중)
  • 처리 성능 : Gradle > Maven
  • 대규모 프로젝트에서의 성능 : Gradle > Maven
  • 빌드 관리 파일
    • Maven : pom.xml
    • Gradle : build.gradle
  • Gradle은 Gradle Wrapper의 도움으로 설치 없이 사용할 수 있다.

비교하고 보니 Gradle 써야겠다


그리고 더 알아보자!

Gradle과 Maven은 빌드 관리 도구입니다.

빌드 관리 도구란

  • 프로젝트에서 필요한 xml, properties, jar, yaml 파일들을 자동으로 인식하여 빌드해주는 도구
  • 소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 필드해줌
  • 프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행
  • 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리 제공
  • 개발자들이 편하게 설정들과 dependency들을 관리하고 다른 개발자들과 협업하기 편하게 하기 위해 사용함

Java의 대표적인 빌드 관리 도구

  • Ant
  • Maven
  • Gradle

Maven

개발된 이유

  • Ant는 빌드 관리 기능을 제공하지만 개발자가 소스의 위치와 작업의 순서(라이프싸이클)를 모두 정해줘야 했다.
  • 대규모 프로젝트에서 복잡해지는 경향이 있었다.
  • Maven은 Ant를 대체하기 위해 개발되었다.
  • Maven은 Pom.xml으로 편하게 의존성 관리를 할 수 있고, 필수적인 소스 위치와 작업의 순서가 정해져 있다.

pom.xml의 역할

  • 프로젝트 정보 관리
  • 해당 프로젝트에서 사용하는 외부 라이브러리 관리
  • 해당 프로젝트의 빌드 관련 설정

주로 사용하는 대표 태그 설명

Maven의 주요 태그다

Gradle

  • Groovy 스크립트를 활용한 빌드 관리 도구
  • 안드로이드 프로젝트의 표준 빌드 시스템으로 채택
  • 멀티 프로젝트 (Multi-Project)의 빌드에 최적화 하여 설계됨
  • Maven에 비해 더 빠른 처리속도를 가지고 있음
  • Maven에 비해 더 간결한 구성이 가능함

주로 사용하는 대표 태그 설명

  • repositories : 라이브러리가 저장된 위치 등 설정
  • mavenCentral : 기본 Maven Repository
  • dependencies : 라이브러리 사용을 위한 의존성 설정

Reference

+ Recent posts