Maven ? Gradle?

Jiwon·2022년 7월 30일
1

Maven : 스프링프로젝트에서 pom.xml 이란 이름을 쓰고,
Gradle : 스프링부트, 안드로이드에서 쓴다.


Maven?

프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라,
많은 라이브러리들을 활용해서 개발 하게 된다.

이 때 사용되는 라이브러리들의 수가 수십개가 넘어버리는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 경우가 종종 발생하는데,

Maven은 이러한 문제를 해결해 줄 수 있는 도구.

Maven 은 내가 사용할 라이브러리 뿐만 아니라
해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여
네트워크를 통해 자동으로 다운 받아 준다.

프로젝트의 전체적인 라이프사이클을 관리하는 도구이며,
많은 편리함과 이점이 있어 널리 사용되고 있다.

기존에는 Ant가 많이 사용되었지만 Maven이 Ant를 넘어서 더 많은 개발자들이 사용하게 되었고 비교적 최근에는 Gradle 이 새롭게 나와 사용되고 있다.

JDK설치와 같이 설치할 수 있다.
환경변수 잡아주면, cmd 에서

mvn -version

명령어로 확인 가능.

Maven Lifecycle

미리 정의하고 있는 빌드 순서가 있으며,
이 순서를 라이프사이클이라고 한다.

라이프 사이클의 빌드 단계를 -> Phase 라고 하는데,
이런 Phase 들은 의존관계를 가지고 있다.

크게 Clean, Bukld, Site 세가지 라이프사이클로 나누고 있다.

메이븐에서는 하나의 플러그인에서 여러작업을 수행할 수 있도록 지원하며,
플러그인에서 실행할 수 있는 각각의 기능을 goal 이라고 한다.

플러그인의 goal을 실행하는 방법

mvn groupId:artifactId:version:goal(아래와 같이 생략가능)
mvn plugin:goal

POM (Project Object Model)

약자 그대로 Project Object Model의 정보를 담고있는 파일.

  • 프로젝트 정보
  • 빌드 설정
  • 빌드 환경
  • POM 연관 정보

POM은 pom.xml 파일을 말하며 Maven의 기능을 이용하기 위해 POM 이 사용된다.

Gradle?

기본적으로 빌드 배포 도구(Build Tool)이다.
안드로이드 앱을 만들 때 필요한 공식 빌드시스템이기도 하며
Java, C/C++, Python 등을 지원.

기본 메이븐의 경우 XML로 라이브러리를 정의하고 활용하도록 되어 있으나,
Gradle의 경우 별도의 빌드스크립트를 통하여 사용할 어플리케이션 버전,
라이브러리 등의 항목 설정 가능.

장점 : 스크립트 언어로 구성되어 있기 때문에 XML과 달리 변수선언,
if, else, for 등의 로직이 구현가능하여 간결하게 구성 가능하다.

  • 라이브러리 관리
  • 프로젝트 관리
  • 단위 테스트시 의존성 관리

뭐가 더 좋은가.

Gradle 이 시기적으로 늦게 나온만큼 사용성, 성능 등 비교적 뛰어난 스펙.

Gradle 은 Maven 보다 최대 100배 빠르다.


참고 사이트 & 자세한 설명
https://hyojun123.github.io/2019/04/18/gradleAndMaven/

profile
과연 나는 ?

0개의 댓글