[java] 메이븐(Maven) vs 그래들(Gradle) 프로젝트 차이

최대 1 분 소요

메이븐(Maven) 과 그래들(Gradle) 대략적인 개요


메이븐(Maven)

  • 자바용 프로젝트 관리 도구
  • 아파치 라이센스로 배포되는 오픈소스 소프트웨어
  • 필요한 라이브러리들과 연관된 라이브러리 들이 거미줄처럼 다 연동되어서 관리가 됨
    • 의존 전이 혹은 연쇄 의존
  • 네트워크만 연결되어 있으면 연관된 라이브러리 까지 자동으로 다운로드 및 업데이트 해줌
  • pom.xml 파일에 dependency(의존) 명시 필수



그래들(Gradle)

  • Groovy를 이용한 빌드 자동화 시스템
  • Groovy와 유사한 도메인 언어 채용
  • 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템
  • Java, C++, Python 등 여러 언어 지원



메이븐(Maven) 과 그래들(Gradle) 비교

출저 :

https://okky.tistory.com/179

https://araikuma.tistory.com/460

https://www.oops4u.com/2281

  • 메이븐(Maven)은 XML 기반의 빌드처리를 작성함
  • 복잡한 내용을 작성하게 되면 XML 기반의 묘사는 상당히 어려워짐

  • 그래들(Gradle)은 Java와 거의 비슷한 코드를 써서 빌드처리를 관리 할수 있음

  • 규모가 커지는 프로젝트를 할수록 그래들(Gradle)이 유리할 수 있음

  • 그래들(Gradle) 은 groovy 언어로 작성해야 되므로 XML 에 익숙한 개발자라면 친숙하지 않을 수 있음

  • 대신 확장성이 뛰어남

  • 메이븐(Maven)은 프로젝트의 규모가 커질수록 스크립트의 길이도 늘어남. 가독성도 떨어짐

  • 그래들(Gradle)은 훨씬 적은 양의 스크립트로 짧고 간결하게 작성가능

  • 메이븐은 멀티 프로젝트에서 특정 기능을 다른 모듈에서 사용할려면 상속을 받아야 하지만 그래들은 설정 주입방식으로 이것을 해결함

  • 그래들은 멀티프로젝트에 적합하며, 빌드속도도 빠름

  • 즉 짧고 간결한 그래들이 유리함.