개발(~국비)/Spring
Maven 빌드
까만밀가루
2023. 1. 5. 21:53
빌드 도구
- 빌드 : 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정
컴파일, 테스팅, 배포 등 모든 과정의 집합 - 빌드 과정을 자동으로 수행해주는 도구
- 자바 빌드 도구 : Ant, Maven, Gradle
Maven을 사용하는 이유
: 버전이 업데이트 될 때마다 관련 기능의 라이브러리를 일일이 수정해야하고, 사용법이 달라지면 소스도 같이 수정
→ 불편함 해결 → 빌드 + 자동 라이브러리 관리 기능 추가
Maven은 라이브러리를 자동으로 추가 및 관리, 라이브러리 버전을 자동으로 동기화
maven에서 지원하지 않는 라이브러리는 WEB-INF 폴더 내 'lib'라는 폴더를 따로 만들어 그 안에 다운 받은 라이브러리 jar 파일을 추가하여 관리
Maven에서 플러그인이란?
- 플러그인 : 일반적인 소프트웨어 일부, 브라우저에서 취급할 수 없는 인터넷 상의 콘텐츠를 취급
Ex. Adobe Flahs, Windows Media Player, Java - 메이븐은 플러그인을 구동해주는 프레임워크
- 메이븐은 여러 플러그인으로 구성되어 있으며, 각각의 플러그인은 하나 이상의 goal(명령, 작업)을 포함. Goal은 Maven의 실행 단위
- 플러그인과 골의 조합으로 실행
- 메이븐은 여러 goal을 묶어서 lifecycle phases로 만들고 실행한다.
Maven Buile LifeCycle(메이븐 빌드 라이프 사이클)
:메이븐은 프로젝트 생성에 필요한 단계(phases)들을 Build Lifecycle이라 정의, default, clean, site 세 가지로 표준 정의
- clean : 빌드 시 생성되었던 산출물을 삭제
- pre-clean : clean 작업 전에 사전작업
- clean : 이전 빌드에서 생성된 모든 파일 삭제
- post-clean : 사후작업
- default : 프로젝트 배포절차, 패키지 타입별로 다르게 정의됌
- validate : 프로젝트 상태 점검, 빌드에 필요한 정보 존재유무 체크
- initialize : 빌드 상태를 초기화, 속성 설정, 작업 디렉터리 생성
- generate-sources : 컴파일에 필요한 소스 생성
- process-sources : 소스코드를 처리
- generate-resources : 패키지에 포함될 자원 생성
- compile : 프로젝트의 소스코드를 컴파일
- process-classes : 컴파일 후 후처리
- generate-test-source : 테스트를 위한 소스 코드를 생성
- process-test-source : 테스트 소스코드를 처리
- generate-test-resources : 테스팅을 위한 자원 생성
- process-test-resources : 테스트 대상 디렉터리에 자원을 복사하고 가공
- test-compile : 테스트 코드를 컴파일
- process-test-classes : 컴파일 후 후처리
- test : 단위 테스트 프레임워크를 이용해 테스트 수행
- prepare-package : 패키지 생성 전 사전작업
- package : 개발자가 선택한 war, jar 등의 패키징 수행
- pre-integration-test : 통합테스팅 전 사전작업
- integration-test : 통합테스트
- post-integration : 통합테스팅 후 사후작업
- verify : 패키지가 품질 기준에 적합한지 검사
- install : 패키지를 로컬 저장소에 설치
- deploy : 패키지를 원격 저장소에 배포
- site : 프로젝트 문서화 절차
- pre-site : 사전작업
- site : 사이트문서 생성
- post-site : 사후작업 및 배포 전 사전작업
- site-deploy : 생성된 문서를 웹 서버에 배포
https://sweeteuna.tistory.com/110
[Spring] Maven? 빌드 도구란?
스프링 프로젝트를 경험해봤지만 Maven이 정확히 뭔지 몰랐던 것 같아 정리해보기로 했다. 빌드 도구란? 빌드 도구를 알기 위해서는 먼저 '빌드'가 뭘 의미하는지부터 알아야 한다. 빌드란 소스코
sweeteuna.tistory.com
https://sjh836.tistory.com/131
maven (메이븐 구조, 차이점, 플러그인, 라이프사이클, 의존성, pom.xml)
참조문서 : http://maven.apache.org/이클립스에서만 깨작깨작해본 나는 메이븐은 이름만 들어보았을 뿐.. 라이브러리 추가할 거있으면 dependency 만 복붙해서 저장하면 자동으로 추가되길래 개편하다.
sjh836.tistory.com