본문 바로가기
🍃 Language/Java

[Spring] 스프링 프로젝트 디렉토리 구조(maven vs gradle)

by 카프리썬_ 2021. 4. 7.
728x90
728x90

스프링 프로젝트를 구성할때 가끔 고민되는 부분이 있다.

메이븐(maven)과 그래들(gradle)이다.

안드로이드 개발할때 언뜻 gradle을 보긴했지만 늘 모르는 채로 넘어가서 이참에 찾아보았다. 

 

공통점 

일다 둘다 빌드관리 툴이다. 

빌드란 단순한 소스코드파일을 실행가능한 소프트웨어 산출물으로 만드는 과정이다. 

소스코드파일에는 자바코드뿐만 아니라 그 안에 사용하는 다른 라이브러리도 있을 것이다.

이떄 그 라이브러리들도 컴파일하고, 패키징하는 과정을 빌드라한다. 

 

컴파일은 컴퓨터가 이해할 수 있는 기계어로 번역하는 작업이다.  

자바의 경우 자바가상머신(JVM)에서 실행가능한 바이트코드 형태인 클래스파일을 만든다.

 

빌드툴은 프로젝트를 진행하면서 라이브러리버전을 동기화하기 위해서 등장했다. 

 

Maven이란?

초기에 사용되었던 Ant 다음으로 등장한 빌드관리툴

장점

-라이브러리 Dependency 관리기능 

pom.xml에 디팬던시만 추가하면 알아서 관련 라이브러리를 다운받는다. 

여려명이서 프로젝트작업을 진행할때 라이브러리 파일까지 주고받지 않아도 되서 라이브러리 관리가 편하다

-일관된 디렉토리 구조와 빌드프로세스

-메이븐 제공 플러그인 사용가능

출처 : jetbranins.com

Gradle이란?

Grooby를 이용한 빌드관리툴, Maven보다 늦게나온만큼 성능성,사용성이 더 뛰어나다.

현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식빌드 시스템

*DLS(Domain Specific Language)을 사용하고, 의존성기반 프로그래밍 언어를 위한 툴이다. 

Gradle Wrapper를 이용해서 그래들이 설치되지 않은곳에서도 빌드가 가능하다 

장점

-라이브러리 Dependency 관리기능 

라이브러리의 패키지명,버전을 build.grade에 지정해서 자동으로 다운로드 가능,

라이브러리 버전충돌도 자동으로 관리해줌  

-멀티프로젝트 : Repository내에 여러개의 하위프로젝트 구성이 가능하다

-유연성+확장성 : Groovy기반 스크립팅으로 다양한 기능을 직접구현가능, 플러그인추가 가능

 

 

 

결론 : Maven보다 Gradle을 쓰자.

아무래도 더 늦게 나온 최신기술이라 더 뛰어난 스펙을 가지고 있다. 

gradle이 maven보다 좋은점

- maven을 쓰면 build라는 동적인 요소를 xml로 정의해야하는데 그럼 가독성이 떨어지고 어려우니 gradle을 쓰자! 

- gradle은 동적인 빌드를 groovy 스크립트로 짤 수 있음 

 

출처 : 차이점 및 특징 

alliwannado-start.tistory.com/5

 

728x90
반응형