본문 바로가기
web/기타

빌드(build), 메이븐과 라이프 사이클

by fien 2021. 7. 8.

컴파일이란?

소스코드를 컴퓨터가 이해하는 기계어(바이너리코드)로 변환하는 과정

자바의 경우는 jvm에서 실행할 수 있는 바이트코드의 클래스 파일이 생성됨

빌드란?

소스코드를 실행할 수 있는 소프트웨어 형태로 변환하는 과정

→ 소스코드(java)나 프로젝트 리소스(.xml, .jpg, ...)를 jvm이나 was(톰캣)이 인식할 수 있는 구조로 패키징 하는 과정

소프트웨어가 응집력 있는 하나의 단위로써 작동하게 하는 과정

(테스트, 검사, 배포 기능등을 포함하는 단위로 생각하기도 함)

빌드 툴

  • 프로젝트 생성, 테스트 빌드, 배포 등 전체적인 라이프 사이클을 관리하기 위한 전용 프로그램
  • 엔터프라이즈 개발시 일어나는 빈번한 라이브러리 추가 및 버전 동기화의 어려움을 해소
  • 코드 컴파일, 컴포넌트 패키징, 개발 테스트 실행, 버전관리 도구 통합, 문서 생성, 배포 기능 포함

~ maven, gradle

Maven

  • 의존성 관리 : pom.xml에 라이브러리를 설정하면 해당 라이브러리와 의존 라이브러리를 네트워크를 통해 자동으로 다운로드해서 로컬 레파지토리에 저장해준다.
  • → 이러한 기능이 없으면 다른 작업 환경에서 라이브러리 패스가 불일치 하거나 일일히 프로젝트 라이브러리 안에 저장하는 문제가 발생
  • 빌드 과정이 정해져 있으며(라이프 사이클) 프로젝트 관리 기능도 포함(build tool + project management) → 프로젝트 생성
  • 컴파일과 빌드 동시 수행, 패키지 배포의 용이함, 테스트 지원

 

LifeCycle : 미리 정해져 있는 빌드 순서

clean : 빌드 시 생성되었던 파일을 삭제하는 단계

validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계

compile : 프로젝트의 소스코드를 컴파일 하는 단계

test : 유닛 테스트를 수행하는 단계 ( 테스트 실패시 빌드 실패로 처리 할 수 있음)

package : 실제 컴파일 된 소스 코드와 리소스들을 jar, war 등의 배포를 위한 패키지로 만드는 단계

verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계

install : 패키지를 로컬 저장소에 설치하는 단계

site : 프로젝트 문서와 사이트 작성, 생성하는 단계

deploy: 만들어진 package를 원격 저장소에 release 하는 단계

 

빌드 순서 : compile → test → package → install → depoly

compile : src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일 된다.

test : src/test/java, src/test/resources 테스트 자원 복사 및 테스트 소스 코드가 컴파일 된다.

package : 컴파일과 테스트를 수행 한 결과물을 jar,war와 같은 패키지 파일 형태로 압축하는 작업

 

Phase - plugin - goal

뉴렉처

Phase : 빌드 사이클의 각각의 단계. 이전 단계가 모두 수행되어야 수행 가능.

plugin : 단계 별로 사용 되는 프로그램. 여러 goal를 포함한다.

goal : plugin 내의 각각의 실질적인 기능. 각 단계에서 실제로 수행되는 작업.

 

pom.xml에서 메이븐 프로젝트의 의존성이나 빌드과정에서 적용할 플러그인 등을 설정할 수 있다.

'web > 기타' 카테고리의 다른 글

npm에서 yarn berry로  (0) 2022.11.09
[Vue] vue-fragment 사용 시 발생하는 DOM Exception 해결  (0) 2022.02.28
[WEB] WEB과 HTTP, URI와 URL 개념  (0) 2020.11.24

댓글