Maven 기초 명령어 완벽 정리 - 개발자 필수 가이드
Maven을 설치하셨나요? 이제 본격적으로 Maven의 핵심 명령어들을 알아보겠습니다. Maven 명령어는 프로젝트의 전체 생명주기를 관리하는 데 사용되며, 빌드, 테스트, 배포 등 모든 단계를 효율적으로 처리할 수 있게 해줍니다. 이번 포스팅에서는 Java 개발자라면 반드시 알아야 할 Maven 기본 명령어들을 상세히 살펴보겠습니다.
Maven 명령어 구조 이해하기
Maven 명령어는 기본적으로 다음과 같은 구조를 가집니다:
mvn [options] [<goal(s)>] [<phase(s)>]
- mvn: Maven 실행 명령어
- options: 명령어 옵션 (-D, -X 등)
- goals: 플러그인 목표 (compiler:compile 등)
- phases: 빌드 라이프사이클 단계 (clean, compile, test 등)
필수 Maven 명령어
1. 프로젝트 생성 및 기본 정보 확인
# Maven 버전 확인
mvn -version
mvn -v
# 새 프로젝트 생성
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# 효과적인 POM 확인
mvn help:effective-pom
# 프로젝트 의존성 트리 확인
mvn dependency:tree
2. 빌드 라이프사이클 명령어
Maven의 기본 빌드 라이프사이클은 다음 단계를 포함합니다:
# 프로젝트 유효성 검사
mvn validate
# 소스 코드 컴파일
mvn compile
# 테스트 코드 컴파일
mvn test-compile
# 단위 테스트 실행
mvn test
# 프로젝트 패키징 (JAR/WAR 생성)
mvn package
# 패키지 검증
mvn verify
# 로컬 저장소에 설치
mvn install
# 원격 저장소에 배포
mvn deploy
3. 클린 빌드 명령어
# 빌드 디렉토리(target) 제거
mvn clean
# 클린 후 컴파일
mvn clean compile
# 클린 후 패키징
mvn clean package
# 클린 후 설치
mvn clean install
자주 사용하는 조합 명령어
1. 개발 중 자주 사용하는 명령어
# 클린 빌드 후 테스트까지 실행
mvn clean test
# 클린 빌드 후 패키징 (가장 많이 사용)
mvn clean package
# 테스트 스킵하고 빌드
mvn clean package -DskipTests
mvn clean package -Dmaven.test.skip=true
# 오프라인 모드로 빌드
mvn clean package -o
2. 디버깅 관련 명령어
# 디버그 모드로 실행 (상세 로그 출력)
mvn clean install -X
# 에러 스택트레이스 출력
mvn clean install -e
# 조용한 모드 (최소 출력)
mvn clean install -q
의존성 관리 명령어
1. 의존성 분석
# 의존성 트리 확인
mvn dependency:tree
# 사용하지 않는 의존성 찾기
mvn dependency:analyze
# 의존성 목록 출력
mvn dependency:list
# 의존성 소스 다운로드
mvn dependency:sources
# 의존성 JavaDoc 다운로드
mvn dependency:resolve -Dclassifier=javadoc
2. 의존성 문제 해결
# 의존성 충돌 해결
mvn dependency:tree -Dverbose
# 특정 의존성 제거
mvn dependency:purge-local-repository
플러그인 관련 명령어
# 사용 가능한 플러그인 목표 확인
mvn help:describe -Dplugin=compiler
# 플러그인 업데이트 확인
mvn versions:display-plugin-updates
# 의존성 업데이트 확인
mvn versions:display-dependency-updates
사이트 및 문서화 명령어
# 프로젝트 사이트 생성
mvn site
# JavaDoc 생성
mvn javadoc:javadoc
# 프로젝트 보고서 생성
mvn site:run
고급 옵션과 팁
1. 시스템 속성 설정
# 시스템 속성 전달
mvn clean package -Dproperty=value
# 프로파일 활성화
mvn clean package -Pproduction
# 다중 프로파일 활성화
mvn clean package -Pdev,debug
2. 병렬 빌드
# 병렬 빌드 (CPU 코어 수만큼)
mvn clean install -T 1C
# 4개 스레드로 병렬 빌드
mvn clean install -T 4
3. 부분 빌드
# 특정 모듈부터 빌드 재개
mvn clean install -rf :module-name
# 특정 모듈과 의존 모듈만 빌드
mvn clean install -pl :module-name -am
실전 활용 예제
1. 개발 워크플로우
# 1. 코드 변경 후 빠른 테스트
mvn test
# 2. 전체 빌드 및 테스트
mvn clean verify
# 3. 배포 가능한 아티팩트 생성
mvn clean package
# 4. 로컬 환경에 설치
mvn clean install
2. CI/CD 파이프라인용 명령어
# Jenkins나 GitLab CI에서 자주 사용
mvn clean verify sonar:sonar
# 도커 이미지 빌드 포함
mvn clean package docker:build
문제 해결 팁
1. 빌드 실패 시
# 상세 에러 메시지 확인
mvn -e clean install
# 디버그 모드로 실행
mvn -X clean install
# 의존성 문제 확인
mvn dependency:tree
2. 성능 최적화
# 오프라인 모드 사용
mvn -o clean install
# 테스트 스킵
mvn clean install -DskipTests
# 병렬 빌드
mvn -T 1C clean install
마무리
Maven 명령어는 Java 프로젝트 개발의 핵심입니다. 이번 포스팅에서 소개한 명령어들을 잘 활용하면 개발 생산성을 크게 향상시킬 수 있습니다. 특히 mvn clean package, mvn clean install, mvn dependency:tree 같은 명령어는 일상적인 개발 작업에서 자주 사용되니 꼭 익혀두시기 바랍니다.
'maven' 카테고리의 다른 글
Maven 의존성 관리 완벽 가이드 - POM.xml 설정부터 실전 팁까지 (0) | 2025.05.12 |
---|---|
Maven 설치 완벽 가이드 - Windows, Mac, Linux에서 Maven 설치하기 (0) | 2025.05.10 |