본문 바로가기

IT

[Spring Boot] Maven 과 Gradle

Spring Boot 프로젝트를 생성할 때 프로젝트 관리 도구로 MavenGradle 을 선택할 수 있다.

Maven 프로젝트를 익숙하게 사용했는데 둘의 차이는 무엇일까? 하고 궁금해졌다.

 

Maven

프로젝트 객체 모델(POM, Project Object Model) 바탕으로한 프로젝트 관리 도구

POM: 프로젝트의 구조와 내용을 설명함, pom.xml 에 프로젝트 관리 및 빌드 환경 설정, 의존성 관리 등을 관리

의존성 자동 업데이트

저장소를 통한 라이브러리 일괄 관리 가능(default 로 $HOME/.m2/repository 에 저장됨)

 

Gradle

오픈소스 빌드 도구로 Maven 의 단점을 보완한 개선된 서비스 제공

Groovy 언어의 Domain Specific Langangue 로 설정정보를 구성하여 간결하게 관리

안드로이드 프로젝트 빌드관리도구로 사용함

 

결론

Gradle 은 Maven 보다 대부분의 시나리오에서 최소 두배 빠른 속도를 제공함

빌드 캐시를 사용하는 대규모 빌드의 경우에는 100배 빠르다고 함

 

어떻게 더 빠르게 빌드 할 수 있을까?

  • Gradle은 테스크를 분석하여 변경된 파일만 처리함
  • 테스크의 결과를 로컬에서 재사용함 (빌드 머신 사이에서 Remote로 캐시 공유가 가능하다고 함)
  • 메모리에서 빌드정보를 오랫동안 유지함

구글 트랜드 지수에서도 한국과 전 세계 모두 Gradle 이 앞선다.

실제로 Maven 과 Gradle 로 프로젝트 빌드를 관리하면서 성능을 경험하는 것이 가장 좋을 것 같다.

 

참고

gradle.org/maven-vs-gradle/

maven.apache.org/