Maven
-
컴파일과 빌드를 동시에 수행할 수 있다.
-
서버의 Deploy 자원을 관리할 수 있는 환경을 제공한다.
-
pom.xml 파일을 통해 관리하므로 개발, 유지보수 측면에서 오픈소스 라이브러리, 프로젝트 등 관리가 용이하다.
-
IDE에 종속된 부분들을 제거할 수 있다.
-
Maven Profile 기능을 통해 배포 설정 파일을 관리하고 배포 파일을 생성할 수 있다.
단점
-
Maven에서 기본적으로 지원하지 않는 빌드 과정을 추가해야 하는 경우 상당한 고생이 따른다.
-
특정 플러그인이 설정이 약간만 달라도 해당 설정을 분리해서 중복 기술할 때가 발생한다. 불필요하게 설정이 길어지고 중복, 가독성 저하가 발생하여 유지보수성을 떨어뜨린다.
-
이와 같은 단점을 해결하기 위해, Gradle(그레이들)이라는 새로운 빌드 툴이 등장하였다. Gradle은 안드로이드 애플리케이션의 기본 빌드 툴로 채택되었다.
Gradle
지원하는 언어들로는 Java, Groovy, Kotlin 같은 언어들이다.
build.gradle 파일에서 사용할 라이브러리를 지정할 수 있다.
Maven이랑 다른점으로는 라이브러리 파일을 무려 코드로 쓸 수 있다.
Maven Gradle 차이점
1. 스크립트 길이와 가독성 면에서 gradle이 우세하다.
2. 빌드와 테스트 실행 결과 gradle이 더 빠르다. (gradle은 캐시를 사용하기 때문에 테스트 반복 시 차이가 더 커진다.)
3. 의존성이 늘어날 수록 성능과 스크립트 품질의 차이가 심해질 것이다.
maven은 프로젝트가 커질수록 빌드 스크립트의 내용이 길어지고 가독성이 떨어집니다.
반면에 gradle은 훨씬 적은 양의 스크립트로 짧고 간결하게 작성할 수 있습니다.
maven이 정적인 형태의 XML 기반으로 작성되어 동적인 빌드를 적용할 경우 어려움이 많다면,
gradle은 Groovy를 사용하기 때문에 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 됩니다.
발췌 : https://dev-coco.tistory.com/65
메이븐(Maven)과 그래들(Gradle)의 개념 및 비교
스프링과 스프링부트를 공부 하려던 중 maven과 gradle을 알게되었습니다. maven과 gradle이 빌드관리도구인 것은 알고있지만 자세한 개념은 모르기에 maven과 gradle 각각의 개념과 정확한 차이점을 알
dev-coco.tistory.com
위처럼 둘다 프로젝트를 빌드하기 위한 툴로 사용되지만 비교적 최근에 많이 사용되어지고 있는 Gradle이 속도와 개발자 편의성면에서 뛰어난 모습을 보여주고 있습니다.
저 또한 과거 전자정부프레임워크를 다룰때 Maven을 사용해보고 그 뒤로는 Gradle만 사용해왔습니다.
별다른 생각없이 환경에 맞춰 사용하다 둘이 어떤 차이가 있는지에 대해 간략히 정리해봤습니다.
댓글