Legday

[JAVA]메이븐(maven)과 그래들(gradle)이란? 본문

Spring&Springboot/Spring(개인공부용)

[JAVA]메이븐(maven)과 그래들(gradle)이란?

Legday 2022. 8. 24. 14:34

1) 메이븐(maven)과 그래들(gradle)

- Spring에서 프로젝트를 만들때 maven project를 쓸지 gradle프로젝트를 쓸지 나온다.

- 이때 maven은 의존성주입이란것만 듣고 항상 gradle project로 선택해서 만들어서 공부를 해보았습니다

- maven과 gradle 둘다 빌드관리 도구입니다

 

2) 메이븐(maven)

- 기존에는  Ant를 이용했는데  Ant상위호환이 바로 maven이다.

- maven은 Apache 라이센스로 배포되는 오픈소스 소프트웨어 입니다.

- maven은 수많은 라이브러리들을 관리해주는 도구입니다. 

- maven은 라이브러리들을 많이 관리해주기 때문에 필요한 라이브러리를 추가하기 위해 의존성을 많이 사용하기 때문에 라이브러리 의조성 관리 툴이라고 할 수 있다.

- pom.xml을 통해 개발에 필요한 라이브러리를 네트워크를 통해 다운받아 자동으로 연결시켜줍니다.

- pom이란 Project Object Model 의 약자로 프로그램의 정보를 담고있는 xml파일입니다(프로젝트 정보, 빌드 설정, 빌드 환경, pom 연관 정보 등을 가지고있다.)

 

3) 그래들(gradle)

- gradle은 ant와 maven의 장점들만 모아서 나왔습니다.

- 안드로이드앱의 공식 빌드 시스템이며 빌드 속도가 maven과 ant보다 더 빠르다

- 기존 maven은 xml파일로 라이브러리를 정의 했지만 gradle은 groovy 라는 스크립트 언어를 이용한 빌드 자동화 시스템이다.

- groovy는 java 가상머신(JVM)에서 동작하는 스크립트 언어이다. 컴파일 하지 않고 소스코드를 그대로 실행한다.

 

4) 메이블(maven) vs 그래들(gradle)

- maven은 ant보다 좋고 gradle은 maven,ant의 장점들만 모아놨기 때문에 당연히 gradle이다