본문 바로가기
[ETC]/- 개인공부

[개인공부] Maven 과 Gradle 차이 / 무엇이더 좋을까?

by Hapco 2022. 6. 8.
728x90
반응형

#Maven / Gradle ?

--> 빌드도구 :

빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램

빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링 , 랭킹 , 패키징 하는것을 포함한다.

기본적으로 빌드 자동화는 아래와 같은 다향한 작업을 스크립팅 하거나 자동화 하는 행위

(스크립팅 : 상적인 작업을 돕기 위한 작은 프로그램을 작성함을 하는 것 )

-종속성 다운로드

- 소스코드를 바이널코드로 컴파일

- 바이너리 코드를 패키징

- 테스트 실행

- 프로덕션 시스템에 배포

#그렇다면 빌드 도구를 사용하는 이유는 무엇인가?

--> 빌드프로세스를 수동으로 호출이 실용적이지 않다 . 무엇을 ? 순서 , 의존성 , 을 추적하기 쉽지 않기 떄문에 빌드 도구를 사용하면 이를 일관되게 할 수 있다.

Maven
Gradle
#장점 및 특징
-자바 전용 프로젝트 라이프사이클 관리 목적 빌드 도구이며 Ant의 불편을 개선하고자 만들어졋다.
- pom.xml을 이용한 정형화된 빌드 시스템
( 네트워크를 통해서 자동으로 받아줌)
-간단한 설정을 통한 배포관리 가능
#Maven설정파일
- setting.xml
- pom.xml
#장점 및 특징
- Maven과 Ant의 장점을 조합하여 만든 빌드 도구
- build.gradle을 이용한 정형화된 빌드 시스템이다
- 멀티 프로젝트에 용이하다
#Gradle 설정파일
- build.gradle
-Maven의 pom.xml과 비슷한 플러그인 ,의존 성 추가를 위한 파일이다.

#Maven vs Gradle

--> Gradle 승 : 시기적으로 늦게 나온만큼 Maven에서의 단점은 줄이고 사용성 및 성능을 증가

##gradle이 Maven보다 좋은점

-bulid라는 동적인 요소를 xml로 정의하기에는 어려운 부분이 많다.

-설정 내용이 길어지고 가독성이 떨어짐

-상속구조를 이용한 멀티 모듈 구현

- 특정 설정을 소수의 모듈에서 고유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야함

( 상속의 단점이 생김)

-Gradle은 Groovy를 사용하기 때문에,동적인 빌드 Groovy스크립트로 플러그인을 호출하거나 직접 코드를 짜면된다.

-Configuration Injection 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버햇다

-설정 주입 시 프로젝트의 조건을 체크할 수 있어서 프로젝트별로 주입되는 설정을 다르게 할수있다.

 

참고:https://mylupin.tistory.com/39

댓글