본문 바로가기
CS

[CS] Maven이란 ?

by 시간많은백수 2023. 9. 23.
반응형

✔️Maven이란?

Maven은 Java 프로젝트를 더 쉽게 관리하고 빌드할 수 있도록 도와주는 프로젝트 관리 도구입니다.

 

💡Maven 특징

  • 의존성 관리: Maven은 프로젝트가 사용하는 외부 라이브러리 및 다른 프로젝트에 대한 의존성을 자동으로 관리합니다.
  • 프로젝트 라이프사이클 관리: Maven은 프로젝트 빌드 단계를 정의하고 실행할 수 있는 라이프사이클을 제공합니다.
  • 프로젝트 구조 표준화: Maven은 프로젝트 디렉토리 구조와 파일 명명 규칙을 정의하여 프로젝트 구조를 표준화합니다.
  • 자동 빌드: Maven은 프로젝트를 빌드하고 패키징하는 작업을 자동화하며, 이를 통해 개발자가 더 효율적으로 작업할 수 있습니다.
  • 프로젝트 문서화: Maven은 프로젝트 문서화를 위한 도구와 플러그인을 제공하여 프로젝트 문서 작성을 쉽게 합니다.

💡Maven 장점

  • 표준화된 프로젝트 구조: Maven은 표준 프로젝트 구조를 강제하므로 프로젝트의 구조가 일관되고 예측 가능합니다.
  • 의존성 관리: 외부 라이브러리 및 모듈 간의 의존성을 자동으로 관리하므로 프로젝트 빌드 시스템이 간편해집니다.
  • 라이프사이클 관리: 빌드 프로세스를 미리 정의된 라이프사이클을 따라 실행하여 표준화된 빌드 프로세스를 제공합니다.
  • 플러그인 아키텍처: Maven은 풍부한 플러그인 아키텍처를 가지고 있어서 필요한 작업을 플러그인으로 추가할 수 있습니다.
  • 문서화: 프로젝트 문서화를 지원하여 프로젝트의 문서화 작업을 간단하게 만듭니다.
  • 공동 작업 가능: Maven 설정 파일인 pom.xml은 프로젝트 정보와 빌드 설정을 정의하며, 팀원 간에 쉽게 공유할 수 있습니다.

💡Maven 설치 및 환경설정

  • Maven 설치
    • Maven 공식 웹 사이트에서 Maven을 다운로드합니다.
    • 다운로드한 파일을 원하는 디렉토리에 압축 해제합니다.
  • 환경 변수 설정
    • 시스템 환경 변수 중 M2_HOME을 생성하고 Maven 설치 경로를 값으로 설정합니다. 예를 들어, C:\apache-maven-3.8.4 (설치 경로에 따라 다를 수 있음)와 같이 설정합니다.
    • 시스템 환경 변수 중 Path에 %M2_HOME%\bin을 추가하여 Maven 실행 파일 경로를 시스템 경로에 포함시킵니다.
    • 이렇게 설정한 환경 변수는 명령 프롬프트 또는 터미널에서 Maven을 실행할 때 사용됩니다.
  • 설치 확인
    • 명령 프롬프트 또는 터미널에서 mvn -version 명령을 실행하여 Maven 버전 및 설정이 올바로 되었는지 확인합니다.

💡Maven 프로젝트 구조

  • src: 소스 코드 및 리소스 파일이 포함된 디렉토리.
    • src/main: 메인 소스 코드 및 리소스가 있는 디렉토리.
      • src/main/java: Java 소스 코드 파일이 위치하는 디렉토리.
      • src/main/resources: 리소스 파일(구성 파일, 이미지 등)이 위치하는 디렉토리.
    • src/test: 테스트 소스 코드 및 리소스가 있는 디렉토리.
      • src/test/java: 테스트용 Java 소스 코드 파일이 위치하는 디렉토리.
      • src/test/resources: 테스트 리소스 파일이 위치하는 디렉토리.
    • target: 빌드된 클래스 파일과 패키지 파일이 생성되는 디렉토리.
    • pom.xml: Maven 프로젝트 설정 파일로, 프로젝트 정보, 의존성, 빌드 설정 등을 정의합니다.

💡Maven 빌드 라이프사이클

  • clean: 프로젝트를 초기화하고 빌드 중 생성된 파일을 제거합니다.
  • validate: 프로젝트가 올바르게 구성되었는지 검증합니다.
  • compile: 소스 코드를 컴파일합니다.
  • test: 단위 테스트를 수행합니다.
  • package: 컴파일된 코드를 패키지 파일(예: JAR, WAR)로 만듭니다.
  • verify: 품질 검증 도구를 사용하여 프로젝트 품질을 확인합니다.
  • install: 패키지를 로컬 저장소에 설치합니다.
  • deploy: 패키지를 원격 저장소에 배포합니다.

💡Maven 의존성 관리

  • pom.xml 파일: Maven 프로젝트 디렉토리에 있는 pom.xml 파일을 편집하여 프로젝트의 의존성을 선언합니다. 의존성은 <dependencies> 요소 안에 정의됩니다.
  • 의존성 추가: 필요한 라이브러리
반응형