반응형
✔️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 프로젝트 설정 파일로, 프로젝트 정보, 의존성, 빌드 설정 등을 정의합니다.
- src/main: 메인 소스 코드 및 리소스가 있는 디렉토리.
💡Maven 빌드 라이프사이클
- clean: 프로젝트를 초기화하고 빌드 중 생성된 파일을 제거합니다.
- validate: 프로젝트가 올바르게 구성되었는지 검증합니다.
- compile: 소스 코드를 컴파일합니다.
- test: 단위 테스트를 수행합니다.
- package: 컴파일된 코드를 패키지 파일(예: JAR, WAR)로 만듭니다.
- verify: 품질 검증 도구를 사용하여 프로젝트 품질을 확인합니다.
- install: 패키지를 로컬 저장소에 설치합니다.
- deploy: 패키지를 원격 저장소에 배포합니다.
💡Maven 의존성 관리
- pom.xml 파일: Maven 프로젝트 디렉토리에 있는 pom.xml 파일을 편집하여 프로젝트의 의존성을 선언합니다. 의존성은 <dependencies> 요소 안에 정의됩니다.
- 의존성 추가: 필요한 라이브러리
반응형
'CS' 카테고리의 다른 글
[CS] Thread Safe란 (0) | 2023.09.30 |
---|---|
[CS] Java신입개발자 기술면접 질문 정리 (업데이트 中) (0) | 2023.09.26 |
[CS] TCP와 UDP (0) | 2023.09.22 |
[CS]Get방식과 Post방식 (0) | 2023.09.22 |
[CS] 웹 서버(Web Server)와 웹 애플리케이션 서버(Web Application Server, WAS) (0) | 2023.09.18 |