less than 1 minute read

프로젝트를 진행하며 신규 개발환경의 빌드도구는 Gradle로 구성되었으나, 기존 개발된 프로젝트의 빌드도구는 Maven 으로 작성되어 있었다. 표기방식 외 Gradle의 장점이 무엇이 있을까 찾아보다 정리 겸 글을 작성한다.

What is Maven?

  • Java용 프로젝트 관리 도구로서 Apache Ant의 대안으로 제작
  • Apache 라이선스로 배포된 오픈소스 소프트웨어
  • 멀티 프로젝트에서 상속 구조 사용
  • pom.xml 파일에 필요한 라이브러리를 선언하는 방식을 사용
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

What is Gradle?

  • Java, C/C++, Python 등 여러가지 언어를 지원
  • Apache 라이선스로 배포된 오픈소스 소프트웨어
  • 멀티 프로젝트에서 주입 방식 사용
  • Groovy 언어를 활용한 DSL 스크립트로 사용
  • 현재 안드로이드 OS 빌드도구로 채택
// https://mvnrepository.com/artifact/junit/junit
testCompile group: 'junit', name: 'junit', version: '4.12'

Gradle이 Maven보다 장점?

  • XML로 정의하는 Maven의 방식보다 DSL 스크립트의 가독성이 좋음
  • 주입 방식을 사용하면서, 상속 구조의 단점을 해소
  • Build속도가 Maven보다 100배 이상? 빠르다고 함

마치며..

간단한 내용만 정리했으나, 표기방식 외에도 멀티프로젝트에서의 내부 동작 방식, 빌드 속도, 언어 지원 범위 등 인지하지 못했던 다양한 차이점이 있다고 한다. 추후에 시간에 여유가 있을때 조금 더 깊게 정리해보아야겠다.

References

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

Categories:

Updated:

Leave a comment