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과 Maven은 빌드 관리 도구입니다.
빌드 관리 도구란
- 프로젝트에서 필요한 xml, properties, jar, yaml 파일들을 자동으로 인식하여 빌드해주는 도구
- 소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 필드해줌
- 프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행
- 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리 제공
- 개발자들이 편하게 설정들과 dependency들을 관리하고 다른 개발자들과 협업하기 편하게 하기 위해 사용함
Java의 대표적인 빌드 관리 도구
- Ant
- Maven
- Gradle
Maven
개발된 이유
- Ant는 빌드 관리 기능을 제공하지만 개발자가 소스의 위치와 작업의 순서(라이프싸이클)를 모두 정해줘야 했다.
- 대규모 프로젝트에서 복잡해지는 경향이 있었다.
- Maven은 Ant를 대체하기 위해 개발되었다.
- Maven은 Pom.xml으로 편하게 의존성 관리를 할 수 있고, 필수적인 소스 위치와 작업의 순서가 정해져 있다.
pom.xml의 역할
- 프로젝트 정보 관리
- 해당 프로젝트에서 사용하는 외부 라이브러리 관리
- 해당 프로젝트의 빌드 관련 설정
주로 사용하는 대표 태그 설명
Gradle
- Groovy 스크립트를 활용한 빌드 관리 도구
- 안드로이드 프로젝트의 표준 빌드 시스템으로 채택
- 멀티 프로젝트 (Multi-Project)의 빌드에 최적화 하여 설계됨
- Maven에 비해 더 빠른 처리속도를 가지고 있음
- Maven에 비해 더 간결한 구성이 가능함
주로 사용하는 대표 태그 설명
- repositories : 라이브러리가 저장된 위치 등 설정
- mavenCentral : 기본 Maven Repository
- dependencies : 라이브러리 사용을 위한 의존성 설정
- 대표적인 Repository site: https://mvnrepository.com/
Reference
- 자바의 대표적인 빌드 관리 툴! 메이븐(Maven)과 그레이들(Gradle)
- Gradle Document (official, 번역 글)
'개발 관심사' 카테고리의 다른 글
소프트웨어 신뢰성 선언문 (0) | 2024.03.04 |
---|---|
MSA 관련 자료집 (0) | 2022.04.13 |
웹 서비스 서버 성능 지표들 (0) | 2022.02.21 |
Apache Log4j 원격코드 실행 취약점 (cve-2021-44228) (0) | 2021.12.14 |