Maven과 Gradle

전윤지·2021년 12월 8일
0

Spring

목록 보기
2/5

1. 빌드 자동화 도구

  • maven과 gradle 모두 빌드 자동화 도구
  • 라이브러리를 각각 다운받을 필요없이, 빌드 도구 설정파일을 통해 자동으로 다운로드, 관리해줌

빌드 자동화 도구

작성한 코드가 JVM, WAS가 인식할 수 있도록 패키징하는 과정 (빌드 과정)


2. Maven

  • 라이브러리를 pom.xml을 통해 관리함
  • 필요한 라이브러리, 플러그인을 다운로드 한 다음 로컬 시스템 캐시에 모두 저장함
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>2.2.4.RELEASE</version>
</dependency>

3. Gradle

  • 스크립트 기반의 build.gradle 파일로 관리함
  • 업데이트가 반영된 빌드 부분은 더이상 재실행되지 않음 (build cache)
    -> 빌드 시간이 단축
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.2.4.RELEASE'

Build Cache

동일한 입력에 대해 gradle bulid를 재사용


4. Maven VS Gradle

💡 둘 다 빌드 tool 모두 라이브러리 의존성을 해결하고, 프로젝트를 관리해준다. 그러면 왜 gradle이 등장했을까?

  • Gradle은 어떤 task가 업데이트 되었고, 안되었고 check함 (incremental build)
    따라서 이미 업데이트 된 task에 대해선 작업이 실행되지 않음
    빌드 실행 시간이 훨씬 단축

Incremental Build

변경된 파일만 작업해서, 중복 작업을 피함

0개의 댓글