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 클래스의 증분 컴파일을 지원합니다.
종속성, 관리, 모듈화, 일관성, 많은 플러그인 및 규칙(구성 초과)이 선호 될 때 사용하는 것이 좋음
유연성, 사용 편의성, 속도 및 증분 빌드가 중요한 경우 사용하는 것이 좋음