본문 바로가기

JAVA

Maven 과 Gradle

Maven

  • Apache Maven은 2004년에 출시 되었다.
  • Apache Ant의 대안으로 만들어졌다.
  • Apache 라이선스로 배포되는 오픈 소스 소프트웨어이다.
  • Apache Maven은 자바용 프로젝트 관리 도구이다.

Maven 장점

  • 라이브러리 관리하기 쉽다.
  • 프로젝트의 작성부터 컴파일, 페트스 등 프로젝트 라이프 사이클에 포함되는 각 테스트를 지원해 준다.
  • war 파일 기반의 배포용으로도 자주 사용된다.
  • 작업 환경이 다른 개발자들이 소스코드를 공유하기 위해 메이븐을 사용할때 pom.xml을 같이 공유하면 개발환경이 다르더라도 에러가 터지지 않고 정상적으로 실행된다.

Gradle

  • Groovy기반으로 만들어진 빌드 도구
  • 현재 안드로이드 스튜디오 공식 빌드 시스템
  • Java, C/C++, Python 등 여러가지 언어에서 지원 한다.

Gradle 장점

  • 멀티 프로젝트에 사용하기 좋다.
  • Apache Ant의 유연성과 Apache Maven의 편리성을 조합하여 많은 오픈소스 프로젝트의 빌드 시스템 체택
  • Maven과 Ivy 레파지토리 완전 지원
  • 원격 저장소나, pom, ivy 파일 없이 연결되는 의존성 관리 지원

Gradle이 Maven보다 좋은 이유

  • Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.
  • Maven은 설정 내용이 길어지고 가독성 떨어진다.
  • 의존관계가 복잡한 프로젝트 설정하기에 부적절하다
  • 상속구조를 이용한 멀티 모듈 구현이 가능하다.
  • 특정 설정을 소수의 모듈에서 공유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야 함 (상속의 단점 생김)
  • Gradle은 Groovy를 사용하기 때문에, 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.

결론

  • 현재까지는 Maven이 점유율이 더 높다.
  • Maven 보다 빠른 성능과 간결한 설정의 매력을 보유하고 있어 인기가 상승중이라서 Gradle이 곧 역전될 가능성이 있다.

더보기

이 글은 코드프레소 DevOps Roasting 코스를 수강하면서 작성한 글입니다.