개발(~국비)/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 : 빌드 시 생성되었던 산출물을 삭제
    1. pre-clean : clean 작업 전에 사전작업
    2. clean : 이전 빌드에서 생성된 모든 파일 삭제
    3. post-clean : 사후작업
  • default : 프로젝트 배포절차, 패키지 타입별로 다르게 정의됌
    1. validate : 프로젝트 상태 점검, 빌드에 필요한 정보 존재유무 체크
    2. initialize : 빌드 상태를 초기화, 속성 설정, 작업 디렉터리 생성
    3. generate-sources : 컴파일에 필요한 소스 생성
    4. process-sources : 소스코드를 처리
    5. generate-resources : 패키지에 포함될 자원 생성
    6. compile : 프로젝트의 소스코드를 컴파일
    7. process-classes : 컴파일 후 후처리
    8. generate-test-source : 테스트를 위한 소스 코드를 생성
    9. process-test-source : 테스트 소스코드를 처리
    10. generate-test-resources : 테스팅을 위한 자원 생성
    11. process-test-resources : 테스트 대상 디렉터리에 자원을 복사하고 가공
    12. test-compile : 테스트 코드를 컴파일
    13. process-test-classes : 컴파일 후 후처리
    14. test : 단위 테스트 프레임워크를 이용해 테스트 수행
    15. prepare-package : 패키지 생성 전 사전작업
    16. package : 개발자가 선택한 war, jar 등의 패키징 수행
    17. pre-integration-test : 통합테스팅 전 사전작업
    18. integration-test : 통합테스트
    19. post-integration : 통합테스팅 후 사후작업
    20. verify : 패키지가 품질 기준에 적합한지 검사
    21. install : 패키지를 로컬 저장소에 설치
    22. deploy : 패키지를 원격 저장소에 배포
  • site : 프로젝트 문서화 절차
    1. pre-site : 사전작업
    2. site : 사이트문서 생성
    3. post-site : 사후작업 및 배포 전 사전작업
    4. 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