Maven의 기본 LifeCycle과 거기에 대응하는 Gradle의 Task

NANA·2023년 10월 18일
0

그냥일기

목록 보기
5/7

Maven

Maven은 프로젝트를 빌드하는 데 사용되는 라이프사이클(라이프 사이클)을 정의하고 관리합니다. Maven 빌드 라이프사이클은 다양한 빌드 작업을 순서대로 실행할 수 있도록 돕습니다.

Default 라이프사이클:

default 라이프사이클은 Maven의 주요 빌드 라이프사이클입니다. 이 라이프사이클은 다음과 같은 주요 단계로 구성됩니다:
validate: 프로젝트의 상태를 검증하고 필요한 정보를 수집합니다.
compile: 소스 코드를 컴파일합니다.
test: 단위 테스트를 실행합니다.
package: 컴파일된 코드 및 리소스를 패키징하여 배포 가능한 형식으로 생성합니다.
verify: 통합 테스트를 실행하고 결과를 확인합니다.
install: 빌드된 아티팩트를 로컬 리포지토리에 설치합니다.
deploy: 빌드된 아티팩트를 원격 리포지토리에 배포합니다.

Gradle

Gradle은 Maven과는 다르게 명시적인 라이프사이클 개념이 없습니다. 대신, Gradle은 빌드 스크립트를 작성하고 원하는 작업을 구성하는 방식을 채택합니다. Gradle에서는 작업(Task)과 프로젝트(Project)라는 개념을 중심으로 동작합니다. 빌드 스크립트에 정의된 작업은 사용자가 명시적으로 호출하거나 의존성 관계를 통해 실행됩니다.

Maven Clean 라이프사이클:

clean 라이프사이클은 빌드 결과물을 제거하는 데 사용됩니다. Gradle에서 해당 작업은 clean 작업으로 대응할 수 있습니다.

gradle clean
Maven Default 라이프사이클:

efault 라이프사이클은 빌드 프로세스의 주요 단계를 포함합니다. 각 Maven 라이프사이클 단계에 대응하는 Gradle 작업은 다음과 같습니다:

validate -> check: 프로젝트의 상태를 검증하고 필요한 정보를 수집합니다.

compile -> compile: 소스 코드를 컴파일합니다.

test -> test: 단위 테스트를 실행합니다.

package -> jar 또는 war: 컴파일된 코드와 리소스를 패키징하여 JAR 파일 또는 WAR 파일을 생성합니다.

verify -> 사용자 정의 작업 또는 플러그인 작업: 통합 테스트를 실행하고 결과를 확인합니다.

install -> install: 빌드된 아티팩트를 로컬 리포지토리에 설치합니다.

deploy -> uploadArchives: 빌드된 아티팩트를 원격 리포지토리에 배포합니다.

기타 스프링친화적 tasks
  • bootJar 작업은 스프링 부트 애플리케이션을 실행 가능한 JAR 파일로 패키징합니다. 스프링 부트의 내장 톰캣과 함께 실행 가능한 JAR 파일을 생성합니다.
  • bootWar 작업은 스프링 부트 애플리케이션을 실행 가능한 WAR 파일로 패키징합니다. WAR 파일은 서블릿 컨테이너(예: Tomcat, Jetty)에서 실행할 수 있습니다.
  • build 작업은 스프링 부트 프로젝트를 빌드합니다. 이 작업은 컴파일, 테스트 실행, 패키징 등 빌드 프로세스를 실행합니다.
  • war 작업은 스프링 부트 애플리케이션을 전통적인 WAR 파일로 패키징합니다. 스프링 부트의 내장 서블릿 컨테이너 대신 외부 서블릿 컨테이너에서 실행할 때 사용됩니다.
profile
기술블로그 그런 거창한 거 아닙니다. 일기에요 일기

0개의 댓글