[java] 메이븐(Maven) vs 그래들(Gradle) 프로젝트 차이
메이븐(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)은 훨씬 적은 양의 스크립트로 짧고 간결하게 작성가능
-
메이븐은 멀티 프로젝트에서 특정 기능을 다른 모듈에서 사용할려면 상속을 받아야 하지만 그래들은 설정 주입방식으로 이것을 해결함
-
그래들은 멀티프로젝트에 적합하며, 빌드속도도 빠름
- 즉 짧고 간결한 그래들이 유리함.