본문 바로가기
Java , Spring/Spring

Gradle, Maven, Gradle Wrapper

by 방배킹 2024. 4. 11.

Gradle이란?

그루비(Grrovy)를 기반으로 한 빌드 자동화, 개발 지원에

중점을 둔 빌드 도구

빌드 자동화 도구?

소프트웨어 개발 프로세스에서 빌드 작업을 자동화하기 위해 사용되는 도구입니다. 소스 코드를 컴파일하고 테스트를 실행하며, 라이브러리 및 의존성을 관리하며, 배포 가능한 소프트웨어 패키지를 생성하는 등의 작업을 자동화하는 데 사용된다.

빌드(build)란?

소스 코드를 실행 가능한 독립적은 소프트웨어 산출물로 만드는 과정

 

빌드 과정 : 컴파일 → 링크 → 패키징 → 테스트

  1. 컴파일: 소스코드 -> 바이너리 코드로
  2. 링크: 클래스 파일들끼리 연결 (외부 라이브러리 포함)
  3. 패키징: 연결된 클래스 및 리소스 파일 묶어주기
  4. 테스트: 기능 테스트

빌드의 산출물

  • JAR (Java Archive): 자바에서 사용되는 압축 양식, 클래스 + 리소스파일로 구성
  • WAR (Web Archive): 웹 어플리케이션을 압축하고 배포하는데 사용되는 파일 형태. JAR에 비해 자바 서블릿, XML 파일, 정적 파일 등 필요한 자원이 더 많다.

Maven이란?

Maven은 Java 전용 프로젝트 관리 도구로, Lifecycle 관리 목적 빌드 도구이며, Apache Ant의 대안으로 만들어졌다. Maven은 아파치 라이센스로 배포되는 오픈 소스 소프트웨어 이다.

Maven의 특징

Lifecycle 관리 도구로, 정해진 Lifecycle에 의하여 작업을 수행하며, 전반적인 프로젝트 관리 기능을 포함하고 있다.

ANT vs MAVEN

Apache Ant는 비교적 자유도가 높은 편이고, Maven은 정해진 라이프사이클에 의하여 작업을 수행하며, 전반적인 프로젝트 관리 기능까지 포함하는 차이점이 있다.

Maven vs Gradle

  1. 스크립트 길이와 가독성 면에서 gradle이 우세하다.
  2. 빌드와 테스트 실행 결과 Gradle이 더 빠르다. gradle은 캐시를 사용하므로 테스트 반복 시 실행 결과 시간의 차이가 더 커진다
  3. 의존성이 늘어날 수록 스크립트 품질의 차이가 커진다.
  4. Maven은 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속 받아야하지만, gradle은 설정 주입 방식을 사용하므로 멀티 프로젝트에 적합하다.

Gradle Wrapper란?

Gradle Wrapper는 Gradle 빌드 시스템을 사용할 때 프로젝트에서 Gradle을 실행하는 데 사용되는 도구다. 이 도구는 프로젝트에 Gradle 설치가 필요하지 않도록 해준다. (Gradle 설치 없이 사용가능)

댓글