1. 메이븐(MAVEN)

  • JAVA용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어짐
  • 아파치 라이센스로 배포되는 오픈소스 소프트웨어
  • 빌드중인 프로젝트, 빌드 순서, 외부 라이브러리 종속성 관계를 pom.xml에 명시
  • 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한 다음, 로컬 시스템의 캐시에 모두 저장함
  • 자신이 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들도 관리하고 네트워크를 통해 자동으로 다운로드 해줌

2. 그래들(GRADLE)

  • Grooby 언어를 사용한 Domain Specific Language를 사용
  • 설정파일 xml을 사용하는 MAVEN보다 코드가 훨씬 간결함
  • 안드로이드 앱의 공식 빌드 시스템
  • 빌드 속도가 MAVEN에 비해 10~100배 가량 빠름
  • JAVA, C/C++, Python 등을 지원
  • 프로젝트의 어느 부분이 업데이트 되었는지 알기 때문에 점진적으로 추가할 수 있다.
  • 업데이트가 이미 반영된 빌드의 부분을 재실행하지 않음(속도가 빠른 이유)

pom.xml

builld.gradle

  • 스크립트 길이와 가독성 면에서 gradle이 높음
  • 빌드 실행결과 gradle이 우세함
  • maven은 xml을 기반으로 의존성 및 디렉토리 구조 관리 등의 기능을 제공하며 많이 사용되지만, 라이브러기가 추가되거나 각각의 라이브러리가 서로 다른 버전의 라이브러리를 참조하는 종속성을 가지고 있을 경우 어려워지는 문제가 있음
  • xml의 특징인 구조화는 장점이지만 문서의 양이 비대해지므로 gradle을 선호하고 있음

maven이 익숙해서 쓰고 있으신 분들도 혼자 프로젝트 생성해서 gradle로 사용해보시면 가독성과 속도 면에서 체감이 많이 되실거라고 생각합니다

감사합니다.

LIST

+ Recent posts