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 코스를 수강하면서 작성한 글입니다.