Gradle vs Maven

Stella·2022년 4월 12일
0

Java

목록 보기
1/18

Gradle

  • Apache Ant와 Apache Maven을 기반으로 하는 빌드 자동화 툴.
  • Groovy-based Domain-Specific Language(DSL) 사용.
  • 안드로이드의 공식 빌드 툴.
  • 이미 업데이트가 된 빌드는 더이상 재실행 되지 않으므로 빌드 시간 단축.
  • 모든 프로젝트가 일관된 디렉토리 구조를 가지고 빌드 프로세스를 유지가능.

Maven

  • Extensible Markup Language(XML) 사용. 라이브러리 종속성 관계를 pom.xml에서 관리.
  • Apache의 Ant 대안으로 탄생.
  • 필요한 라이브러리와 플러인들을 다운로드하고, 캐시에 모두 저장.

POM(Project Object Model)

  • 프로젝트 정보: 프로젝트의 이름, 개발자 목록, 라이센스 등.
  • 빌드 설정: 소스, 리소스, 라이프 사이클 별 실행한 플로그인 등 빌드과 관련된 설정.
  • 빌드 환경: 사용자 환경 별로 달라질 수 있는 프로파일 정보.
  • POM 연관 정보: 의존 모듈(프로젝트), 상위 프로젝트, 포함하고 있는 모든 하위 모듈 등.

Gradel vs Maven

Gradle의 좋은 점

  • Maven: XML의 사용
    • 설정 내용이 길고, 가독성이 떨어짐.
    • 의존관계가 복잡한 프로젝트에는 부적절.
    • 상속구조를 이요한 멀티 모듈 구현.
    • 특정 설정을 소수의 모듈에 공유하기 위해서 부모프로젝트를 생성해야 상속 가능.
  • Gradle: Groovy 사용
    • Configuration Injection으로 공통 모듈을 상속해서 사용하는 단점 해결.
    • 설정 주입시 프로젝트의 조건을 체크가능해서 프로젝트 별로 다르게 설정 가능.

Gradle much faster than Maven

  • Incrementality:
    Gradle은 작업의 input과 output에 따라 필요한 것만 실행하고, 변경된 파일만 처리한다.
  • Build Cache:
    동일한 input으로 빌드된 다른 Gradle의 output을 재사용할 수 있다.
  • Gradle Daemon:
    빌드 정보가 메모리에 길게 존재가능.

Ref:
1. https://www.geeksforgeeks.org/difference-between-gradle-and-maven/?ref=lbp
2. https://gradle.org/maven-vs-gradle/
3. https://jisooo.tistory.com/entry/Spring-%EB%B9%8C%EB%93%9C-%EA%B4%80%EB%A6%AC-%EB%8F%84%EA%B5%AC-Maven%EA%B3%BC-Gradle-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0
4. https://hyojun123.github.io/2019/04/18/gradleAndMaven/

profile
Hello!

0개의 댓글