Backend
Maven과 Gradle 차이점
dev_SiWoo
2022. 1. 5. 09:07
Maven vs Gradle
1. Gradle은 작업 의존성 그래프를 기반으로 하는 반면 Maven은 고정적이고 선형적인 단계의 모델을
기반으로 하고 있다.
2. 성능 측면에서는 둘 다 다중 모듈 빌드를 병렬로 실행 할 수 있다. 그런데
Gradle의 경우 어떤 task가 업데이트 되었고 안되었는지를 체크하기 때문에 incremental build를 허용 한다.
이미 업데이트된 task에 대해서는 작업이 실행되지 않으므로 빌드 시간이 훨 씬 단축된다.
3. Maven의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만,
Gradle은 설정 주입 방식을 제공한다.
Maven
|
Gradle
|
Java를 사용하여 프로젝트 빌드 자동화에 주로 사용되는 압축 소프트웨어 프로젝트 관리 도구
|
Apache Ant 및 Apache Maven의 개념을 기반으로하는 오픈 소스 빌드 자동화 도구
|
Java로 작성
|
Java, Kotlin 및 Gradle로 작성됨
|
Gradle에 비해 Maven 성능이 느림
|
Gradle 빌드 시간은 짧고 빠름.
|
Maven 스크립트는 Gradle에 비해 약간 길다.
|
Gradle 스크립트는 훨씬 짧고 깨끗함.
|
XML 사용
|
DSL (Domain-Specific Language)을 사용합니다.
|
maven에서는 프로젝트와 연결된 목표가 정의됩니다.
|
작업이 수행되는 작업을 기반으로합니다.
|
증분 컴파일은 지원하지 않습니다.
(증분은 입력 및 출력 작업을 추적하고 변경된 코드 / 파일의 일부만 실행하여 불필요한 작업을 피하는 프로세스이다)
|
Java 클래스의 증분 컴파일을 지원합니다.
|
종속성, 관리, 모듈화, 일관성, 많은 플러그인 및 규칙(구성 초과)이 선호 될 때 사용하는 것이 좋음
|
유연성, 사용 편의성, 속도 및 증분 빌드가 중요한 경우 사용하는 것이 좋음
|