gradle

Maven같은경우는 pom.xml  이란 이름으로 쓰고 (Spring에서),

Gradle은 (스프링부트), (안드로이드) 에서 주로 쓰는것임 

pom?  -Project Object Model

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

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

 

보통 프로젝트를 진행하게 되면 많은 라이브러리들을 활용해서 개발함

 

라이브러리들의 수가 수십개가 훌쩍 넘어관리하는 것이 힘들어짐.

 

Maven은 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한

다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운 받아줌

 

Maven은 JDK설치와 같이 설치가능.

환경변수 잡아주고 하면 cmd에서 mvn –version을 통해 버전을 알 수 있고 설치가 가능함

 

Gradle

Gradle이란 빌드 배포 도구임.

안드로이드 앱을 만들때 필요한 공식 빌드시스템이며 JAVA, C/C++, Python 등을 지원함

 

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

 

특징: 스크립트 언어로 구성 (XML과 달리 변수선언, if, else, for등의 로직이 구현가능)

(메이븐 레파지토리를 동일하게 사용할 수 있어서 설정된 서버를 통하여 라이브러리를 다운로드 받아 모두 동일한 의존성을 가진 환경을 수정가능)

 

Gradle이 메이븐보다  늦게 나온만큼 사용성, 성능 등 비교적 좋은 스펙!

 

 

Gradle이 Maven보다 좋은점

  • Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.
    • 설정 내용이 길어지고 가독성 떨어짐
    • 의존관계가 복잡한 프로젝트 설정하기에는 부적절
    • 상속구조를 이용한 멀티 모듈 구현
    • 특정 설정을 소수의 모듈에서 공유하기 위해서는 부모 프로젝트를 생성하여 상속하게 해야함 (상속의 단점 생김)
  • Gradle은 그루비를 사용하기 때문에, 동적인 빌드는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.
    • Configuration Injection 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버했다.
    • 설정 주입시 프로젝트의 조건을 체크할 수 있어서 프로젝트별로 주입되는 설정을 다르게 할 수 있다.

속도! Gradle은 메이븐보다 최대 100배 빠르다.

 

 

지금 시점에서 Gradle을 사용하지 않을 이유는 익숙함 뿐인 것 같다

( Maven과 익숙해진 XML을 버리고 Gradle과 Groovy문법을 배우는 것은 적지않은 비용이 든다. 특히 협업을 하는 경우, 프로젝트 구성과 빌드만을 위해 모든 팀원이 Groovy 문법을 익혀야 한다는 사실은 Gradle을 사용하는데 큰 걸림돌이 된다.)

(협업과 러닝커브를 고려하여 여전히 Maven을 사용하는 팀이 많고 부족함 없이 잘 사용하고 있지만, 빌드타임 비용문제로 이어질경우 Gradle을 사용해야 할 것 같다. 왜냐하면 Gradle이 Maven보다 최대 100 배 빠르기 때문이다.)

 

출처

https://gradle.org/
https://maven.apache.org/
http://egloos.zum.com/kwon37xi/v/4747016
https://bkim.tistory.com/13

https://hyojun123.github.io/2019/04/18/gradleAndMaven/

'Project_Settings' 카테고리의 다른 글

Pom.xml이 대체 무엇인가?  (0) 2021.09.14

+ Recent posts