-
Gradle 과 Maven 차이?JAVA/Java 2020. 1. 10. 08:50
- Maven 과 Gradle 은 모두 빌드 관리 툴이다.
웹/앱 등 프로그래밍 개발이 발전되고 그에 필요한 라이브러리도 점차 증가했다. 이런 각각의 라이브러리들을
직접 다운받아 추가하는 방법은 너무 번거로워 졌다. 따라서 빌드 관리 툴이 등장하는데 프로젝트를 진행하며 라이브
러리의 버전을 동기화하기 위해 등장하였다.
초기 JAVA의 빌드 도구는 Ant라는 빌드 툴이였고 그 이 후 Ant의 불편함등을 해소 하기 위해 Maven이 등장하게 되고
이런 Ant와 Maven의 장점을 모아 등장한 것이 Gradle 이다.
Maven 이란?
빌드를 쉽게해주고 pom.xml을 이용한 정형화된 빌드 시스템을 제공한다.
뛰어난 프로젝트 정보를 제공한다.
개발 가이드 라인을 제공한다..
새로운 기능을 쉽게 설치할 수 있고 업데이트할 수 있다.
Gradle 이란?
JVM 기반의 빌드도구로 기존의 Ant와 Maven을 보완. Java or Groovy 를 통해 개발자의 의도에 따라
설계가 가능하다.
- 오픈소스 기반의 build 자동화 시스템으로 Groovy 기반 DSL로 작성
- Build-by-convention 을 바탕으로 하여 스크립트 규모가 작고 읽기 쉽다
- 멀티 프로젝트의 빌드를 지원하기 위해 설계되었다
- 설정 주입 방식 ( Configuration Injection )
Maven과 Gradle의 가장 큰 차이점은 이 두가지다
- 프로젝트 구성/빌드 툴로써 프로젝트 구성은 정적인 설정 정보이고 빌드는 동적인 행위이다. 그런데 이것을 정적인 데이터를 저장하는데 적합한 XML로 그 내용을 기술하게 함으로써 동적인 행위인 빌드에 크나큰 제약을 가한다. 게다가 XML은 너무 장황해서 실제 설정 내용보다 XML 뼈대가 더 많다.
- Maven의 설계 상의 문제. 바로 멀티 프로젝트 구성을 상속 구조로 한 점이다. 그에 반해 Gradle은 구성 주입 방식(Configuration Injection)을 사용한다. 이는 빌드 구성 정보에서 매우 큰 차이를 만든다 Gradle은 Groovy DSL로 작성하며, 설정 정보는 변수에 값을 넣는 형태로, 동적인 빌드는 Groovy 스크립트로 Gradle용 플러그인을 호출하거나 직접 코드를 짜면 된다.
http://egloos.zum.com/kwon37xi/v/4747016
'JAVA > Java' 카테고리의 다른 글
자바의 다형성 이란? (0) 2020.03.30 자바의 리플렉션 (0) 2020.03.28 자바의 추상 클래스와 인터페이스 (0) 2020.03.28 JVM (Java Virtual Machine) 의 구조 (0) 2020.02.22 String과 StringBuffer, StringBuilder 클래스 차이 (0) 2020.01.10