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 을 같이 참고해 주세요.
설치하기
설치법
brew update && brew install gradle
본인이 쓰고 있는 버전
------------------------------------------------------------
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이 아마 모듈관리성이 좋아서 사용될 것으로 보고 있다. 개발 기회가 있다면 모듈관리에 대해서도 해보고 싶다.
Last updated
Was this helpful?