[Java] Maven vs gradle

null·2023년 3월 17일
0

[nmBoard] 게시판

목록 보기
6/9

Maven

  • XML 기반의 빌드 도구

  • 중앙 저장소(Central Repository)를 통해 의존성을 관리

  • 필요한 의존성을 직접 다운로드하거나 관리할 필요 없이 중앙 저장소에서 의존성을 자동으로 다운로드

  • 빌드 수명주기(Build Lifecycle)를 제공, 이를 통해 빌드 프로세스의 다양한 단계에 플러그인을 적용할 수 있다

    • 빌드 수명주기: 소프트웨어 빌드 과정에서 필요한 작업들을 일정한 순서로 자동화된 방식으로 실행하는 일련의 단계 -> 각 단계는 플러그인을 사용하여 구현

      • clean : 빌드 이전에 이전 빌드에서 생성된 파일들을 삭제하는 단계
      • default : 실제 빌드가 실행되는 기본 수명주기(compile, test, package, install 등의 단계로 구성)
      • site : 프로젝트 문서 생성을 위한 수명주기
  • 플러그인(plugin) 시스템을 제공하며, 다양한 플러그인을 이용해 테스트, 패키징, 배포 등의 작업을 자동화할 수 있다

Gradle

  • Groovy 기반의 빌드 도구이며, 스크립트 언어인 Groovy나 Kotlin을 이용해 빌드 스크립트를 작성할 수 있
    - Groovy : 자바 플랫폼 위에서 동작하는 객체 지향 프로그래밍 언어

  • 빌드 프로세스를 자동으로 최적화, 다양한 프로젝트 구조와 의존성 관리 방식을 지원

  • Gradle Wrapper를 제공하며, 프로젝트에서 사용하는 Gradle 버전을 특정 버전으로 고정시킬 수 있다

  • Maven과는 달리 빌드 스크립트(build.gradle)에서 직접 의존성을 관리

  • 빌드 과정에서 필요한 의존성만 다운로드하고 빌드할 수 있으므로, 더욱 효율적인 빌드가 가능

  • Gradle은 Kotlin을 사용할 수 있어, Kotlin으로 개발하는 프로젝트에서는 더욱 편리

0개의 댓글