8. Maven -> Gradle 변경작업

빌드와 테스트에 소요시간을 해결하는데 Gradle이 장점이라는 소식을 많이 들었다. 따라서 현재 만들고 있는 Maven 프로젝트를 Gradle로 전환해보는 작업을 해보려고한다.

Maven

Apache Maven 2004년 출시
- 빌드를 쉽게 제작
- pom.xml을 통한 정형화된 빌드 시스템
- 뛰어난 프로젝트 정보 제공( Reference source, mailing lists, Dependency etc..)
- 개발 가이드라인 제공
- 새로운 기능을 쉽게 설치하고 업데이트 받을 수 있음(https://mvnrepository.com/)

Gradle

Ant 와 Maven의 장점을 모두 모아 2012년 출시
android os 빌드 도구
- Ant 처럼 유연한 범용 빌드 도구
- Maven을 사용할 수 있는 변환가능 컨벤션 프레임 워크
- 멀티 프로젝트에 사용가능
- 강력한 의존성 관리(apache Ivy)
- Maven 과 Ivy repository 완전 지원
- 원격 저장소 , pom , Ivy 파일 없이 연결되는 의존성 관리
- 그루비 문법(Groovy Scripts)
- 빌드를 위한 풍부한 도메인 모델 제공

왜 Gradle 을 써보려고 하는가?

  • Build 동적 요소를 XML로 정의하기엔 어려움이 많다.

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

    • 의존관계가 복잡한 프로젝트 설정 부적절

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

    • 특정 설정을 소수의 모듈에서 공유하기 위해 부모 프로젝트를 생성하여 상속해야 됨

  • Gradle은 Groovy 를 사용하기에 동적 빌드는 Groovy 스크립트로 작성하면 된다.

  • Gradle이 Maven 보다 빌드 속도가 엄청빠르다.

  • 아직은 여전히 Maven이 접근성이 좋아 많이들 사용하고 있다.

  • 하지만 추가적으로 Gradle로 변경해 보는것도 좋은 경험으로 보인다.

참고 사이트 : bkim Maven vs Gradle

  • 부록에 있는 SOLUTION 을 같이 참고해 주세요.

설치하기

  1. 설치법

    brew update && brew install gradle
  2. 본인이 쓰고 있는 버전

------------------------------------------------------------
Gradle 5.6.2
------------------------------------------------------------

Build time:   2019-09-05 16:13:54 UTC

Kotlin:       1.3.41
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM:          1.8.0_221 (Oracle Corporation 25.221-b11)

정리

본인은 Gradle이 아마 모듈관리성이 좋아서 사용될 것으로 보고 있다. 개발 기회가 있다면 모듈관리에 대해서도 해보고 싶다.

참고 : https://gradle.org/gradle-vs-maven-performance/

Last updated