Spring 프레임워크 기반의 프로젝트를 진행해보려 했더니 크게 Maven,Gradle이 있었습니다. 이 두개의 차이를 모르겠어서 정리를 해보았습니다.
사전적 정의 : Apache Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어 졌다. Apache License로 배포되는 오픈 소스 소프트웨어입니다.
만약 사이드 프로젝트를 하려고하는데 개발자들이 서로 필요한 jar파일을 공유하고자 그것을 메일이나 카톡으로 주고받는 다면 번거로울 것입니다.
그래서 이러한 라이브러리들을 편리하게 공유하고 다운받고자 나온 것이 메이븐입니다.
즉, 필요한 라이브러리를 특정문서(porm.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다운받아줍니다.
Phase는 특정 순서에 따라서 goal 이 실행되도록 구조를 제공합니다.
Phase간에는 의존 관계가 있습니다. ex) compile phase가 수행되는 순서는 정해진 이전 phase의 다음입니다.
즉 모든 빌드단계는 이전 단계가 성공적으로 실행되었을 때 실행된다는 것이 Dependency입니다.